前端的深拷貝和淺拷貝 深拷貝與淺拷貝的區別

2021-10-13 00:14:57 字數 727 閱讀 7773

淺拷貝的方式:

淺拷貝1

var obj =

var newobj = obj;

newobj.name="李四";

console.log(obj);//

console.log(newobj);//

淺拷貝2

object.assgin()

引數1:目標物件

引數2:任意多個物件

如果物件是多層的話

var obj = };

var obj1 = object.assign({},obj);

obj1.data.a = 10;

console.log(obj);//}

淺拷貝3

封裝copyattr()

如果物件是多層的話

function copyattr(obj);

for(var key in obj)};

var newobj = copyattr(obj);

newobj.data.a = 10;

console.log(obj)//}

淺拷貝4

$.extend({},obj)

var obj = };

var newobj = $.extend({},obj);

newobj.data.a = 10;

console.log(obj);//

console.log(newobj);//

前端深拷貝與淺拷貝

前端深拷貝與淺拷貝 1.淺拷貝 var obj1 var obj2 obj1 obj2.a 5 console.log obj1.a 5 console.log obj2.a 52.深拷貝 只能拷貝一層 var obj1 var obj2 object.assign obj1 obj2.c 1 5 ...

「淺拷貝」與「深拷貝」

c 中物件的複製就如同 轉殖 用乙個已有的物件快速地複製出多個完全相同的物件。一般而言,以下三種情況都會使用到物件的複製 1 建立乙個新物件,並用另乙個同類的已有物件對新物件進行初始化,例如 cpp view plain copy class rect rect rect1 rect rect2 r...

淺拷貝與深拷貝

淺拷貝 1 2 myclass a,b a b 為了封裝性和解耦,同型別的兩個物件之間進行賦值操作時,所有成員變數被複製,包括私有成員 指標變數。類的成員函式在傳遞或返回物件時都會進行物件複製產生臨時物件,比如函式呼叫時實參變為形參,以及函式返回物件。考慮到效能和使用者要求不同,編譯器不複製物件內部...