JavaScript 克隆對(duì)象
■知識(shí)點(diǎn)
克隆對(duì)象也是一種復(fù)制操作,不過它的執(zhí)行效率更高一些。
■實(shí)例設(shè)計(jì)
第1步,封裝一個(gè)克隆工具。為Function類型擴(kuò)展一個(gè)原型方法。
var clone = function(obj){ //對(duì)象克隆方法
function Temp(){}; //新建空構(gòu)造函數(shù)
Temp.prototype = obj; //把參數(shù)對(duì)象賦值給該構(gòu)造函數(shù)的原型對(duì)象
return new Temp(); //返回實(shí)例化后的對(duì)象
}
第2步,調(diào)用工具函數(shù)cloneO把obj克隆給objl。
var obj = { //定義對(duì)象
x:true,
y:false
}
var obj 1 = {}; //新的空對(duì)象
objl = clone (obj) ; //克隆對(duì)象
第3步,檢測(cè)對(duì)象objl,其擁有對(duì)象obj所有屬性,但是它們不全等。
console.log (obj 1 === obj); //false,說(shuō)明兩個(gè)對(duì)象不同
console.log(obj1.x); //true
console.log(obj?x); //true
這里通過直接賦值的方式把一個(gè)對(duì)象傳遞給一個(gè)臨時(shí)構(gòu)造函數(shù)的原型對(duì)象,然后實(shí)例化類型函數(shù),并返回這個(gè)實(shí)例對(duì)象,它擁有了參數(shù)對(duì)象的所有成員,但是不再與原參數(shù)對(duì)象保持聯(lián)系。
點(diǎn)擊加載更多評(píng)論>>