方法一:
把原來物件的屬性遍歷一遍,賦給乙個新的物件。
//方法二:深複製物件方法
var cloneobj = function
(obj) ;
if (obj instanceof
array)
for (var key in
obj)
return
newobj;
};
//測試
var obj = ,b:},//
設定乙個物件
newobj = cloneobj(obj);//
複製物件
newobj.b.c=2;//
給新物件賦新值
obj.a();//
1,不受影響
newobj.a();//
2
1). 先將物件變為字串,然後再變為json物件,防止物件的指標指向問題,為深拷貝
2). undefined 和 function 型別的屬性會被忽略,而 date 型別的屬性則會被轉換為字串
var obj =方法三:var newobj =json.parse(json.stringify(obj));
newobj.a=3
; console.log(obj);
console.log(newobj);
針對陣列物件的方法,用陣列方法concat乙個空陣列
var a=[1,2,3];方法四:var b=a;
var c=.concat(a);
a.push(4
);
console.log(b);
console.log(c);
擴充套件運算子實現物件的深拷貝
var obj =方法五:var =obj
obj.old = '22'console.log(obj)
console.log(obj2)
es6擴充套件運算子實現陣列的深拷貝
js如何複製乙個物件?
方法一 把原來物件的屬性遍歷一遍,賦給乙個新的物件。深複製物件方法 var cloneobj function obj if obj instanceof array for var key in obj return newobj 測試 var obj b 設定乙個物件 newobj cloneo...
js如何複製乙個物件 位址傳遞 ?
方法一 把原來物件的屬性遍歷一遍,賦給乙個新的物件。深複製物件方法 var cloneobj function obj if obj instanceof array for var key in obj return newobj 測試 var obj b 設定乙個物件 newobj cloneo...
js中複製乙個物件方法(轉殖物件)
js中複製乙個物件方法 轉殖物件 平時我們針對物件,還有其他基本型別常常使用複製,對於 這種物件,複製之後的只是多了乙個引用,實際上還是指向原物件。1.使用將轉化為json字串,然後再轉回去。存在的問題 似乎對於複雜的會出問題,比如物件裡面存在物件,就會出問題。2.遞迴物件來轉殖,存在的問題 如果有...