假如源對象的屬性值是一個指向對象的引用,它也只拷貝那個引用值。例如:
var arr = [a,b,{c:111}], var val={c:222} var copy = Object.assign(arr[2], val);
此時,arr [2].c 和 copy.c指向的還是一個同一個對象。
Object.assign()
只是一級屬性復制,比淺拷貝多深拷貝了一層
標准(安全)JSON格式的對象深拷貝可以用這個: const arr = JSON.parse(JSON.stringify(val));
如果是單層操作,可以使用擴展運算
var copy = {...arr};
如果不用合並操作的話,可以直接使用字符串互轉即可
var copy = JSON.parse(JSON.stringify(arr));