js如何複製乙個物件?

2022-06-15 07:18:13 字數 1331 閱讀 5766

方法一:

把原來物件的屬性遍歷一遍,賦給乙個新的物件。

//

深複製物件方法

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.遞迴物件來轉殖,存在的問題 如果有...