(function(),clonehelper=function(cache,item)
cache.push(item, item = utils.clone(item, cache))
}return item
};window.utils=,
clone:function(obj,cache)
}());
支援節點轉殖,物件轉殖,同時也支援迴圈引用的物件轉殖。
比如:
var souceobj=
};sourceobj.childobj.child=sourceobj;
這樣乙個迴圈引用的物件也可以正常轉殖
cloneobj=utils.clone(sourceobj);轉殖後,同樣保持與原來相同的引用關係
對於var obj={};
var a={};
a.b=obj;
a.c=obj;
var d=utils.clone(a);
在clone之前
a.b.f='123';
那麼a.c也就有了乙個f 為 '123';
但對於 clone之後的d 也有這功能
然而,每段**或解決方案都有它的適用範圍,以上**也無法保證在所有瀏覽器中對任意物件轉殖均能正常工作,您應當看懂理解**,學以至用,而不是簡單的把**複製過去
以上**在opera某些版本下轉殖正則有問題,已滿足大部分需求
js中複製乙個物件方法(轉殖物件)
js中複製乙個物件方法 轉殖物件 平時我們針對物件,還有其他基本型別常常使用複製,對於 這種物件,複製之後的只是多了乙個引用,實際上還是指向原物件。1.使用將轉化為json字串,然後再轉回去。存在的問題 似乎對於複雜的會出問題,比如物件裡面存在物件,就會出問題。2.遞迴物件來轉殖,存在的問題 如果有...
如何轉殖乙個json物件
定義乙個json物件 jobject job new jobject job age 13 job male context.response.write job job.tostring 輸出結果為 job jobject j clone new jobject j clone jobject j...
乙個引用物件問題
大概是這樣的乙個故事,首先看成員 謝霆鋒,張柏芝 以及他的兩個兒子,如果實體沒有實現cloneable方法,沒有呼叫clone方法,將會得到兩個不同的結果。首先看結果 錯誤的結果1 未實現實體的cloneable方法 我是第乙個孩子我的名字是lucas我爸是謝霆鋒我媽是張柏芝 我是第二個孩子我的名字...