JavaScript 深淺拷貝

2021-09-04 05:14:14 字數 728 閱讀 1457

只能拷貝原始值,如果存在引用值,拷貝的是引用位址。origin 更改值後 target還是會被改變

function clone(origin, target) ;

for (var prop in origin)

return target;

}var obj =

var obj1 = {};

clone(obj, obj1);

無論原始值還是引用值,都進行copy 互不影響

// 1. 遍歷物件 for in

// 2. 判斷是不是原始值 typeof

// 3. 判斷是陣列還是物件 tostring

// 3. 建立相應的陣列或物件

// 4. 遞迴

function deepclone(origin, target) ;

var tostr = object.prototype.tostring;

for (var key in origin) ;

deepclone(origin[key], target[key]);

} else if (res === '[object array]') else }}

return target;

}var obj =

}}var obj1 = {};

deepclone(obj, obj1);

JavaScript必學之資料深淺拷貝

js 物件賦值之淺拷貝深拷貝在實際中應用 我們有時候有這樣的需求,需要將乙個值賦值給另外乙個變數。例如 var a 10 var b a 在這裡我們首先需要知道基本型別和引用型別的區別。js 有 6 種基本資料型別 undefined null boolean number string symbo...

深淺拷貝以及深淺拷貝的方法

先考慮一種情況,對乙個已知物件進行拷貝,編譯系統會自動呼叫一種建構函式 拷貝建構函式,如果使用者未定義拷貝建構函式,則會呼叫預設拷貝建構函式。執行結果 呼叫一次建構函式,呼叫兩次析構函式,兩個物件的指標成員所指記憶體相同,name指標被分配一次記憶體,但是程式結束時該記憶體卻被釋放了兩次,會造成記憶...

拷貝和深淺拷貝

當list2為list的拷貝物件時,list內的可變資料型別變化,list2變化 list內的不可變資料型別變化,list2變化。總之 list變化list2一定變化 list 1,2,3,4,list2 list print list print list2 1,2,3,4,5 1,2,3,4,5...