用js實現物件轉殖最關鍵的兩點就是:var objclone = new this.constructor();和objclone[key] = this[key].clone();。乙個實現相同物件建立,乙個實現深度轉殖。
object.prototype.clone = function()else
for(var key in this)else
} }
objclone.tostring = this.tostring;
objclone.valueof = this.valueof;
return objclone;
}
不用原型方式實現,萬一哪天瀏覽器廠商一更新可能就會有原生的clone方法了,只寫個方法
function clone(obj)else
for(var key in obj)else
} }
objclone.tostring = obj.tostring;
objclone.valueof = obj.valueof;
return objclone;
}
深度轉殖物件
有時,我們需要對乙個物件進行複製,如下列要求 1.使用遞迴來實現乙個深度轉殖,可以複製乙個目標物件,返回乙個完整拷貝 2.被複製的物件型別會被限制為數字 字串 布林 日期 陣列 object物件。function isobject obj function cloneobject obj 判斷物件型...
經典物件轉殖模型 深度轉殖
我們都知道 json.parse json.stringfy obj 可以深度轉殖乙個物件,但是有乙個缺陷,不能轉殖 物件 轉殖的方法 param obj returns function clone obj else if obj instanceof object else 轉殖物件 param...
js的深度轉殖
var obj love 1,2,3 var obj1 function deepclone origin,target tostr object.prototype.tostring,arrstr object array for var prop in origin else target pr...