擴展運算符,Object.assign

assign或者...擴展符 都是淺拷貝 javascript

對象中的擴展運算符(...)用於取出參數對象中的全部可遍歷屬性,拷貝到當前對象之中java

Object.assign方法用於對象的合併,將源對象(source)的全部可枚舉屬性,複製到目標對象(target)數組

若是在拷貝 屬性值是對象時,拷貝的是對象的引用地址spa

能夠簡單深拷貝:   藉助JSON.parse  。由於字符串轉成對象以後就是一個新的對象prototype

var a={title:'a',name:{a:'1',b:'2'}};

var b = JSON.parse(JSON.stringify(a))
b.name.a='3';
console.log(a,b)

=========================code

let bar = {a:1,b:2};
let foo = {c:3, ...bar}    ==> 等價於  let foo = Object.assign({},bar);對象

let bar = [1,2,3]
let foo = [4,...bar]接口

 

任何 Iterator 接口的對象(參閱 Iterator 一章),均可以用擴展運算符轉爲真正的數組ip

foo (a,b,c){字符串

 const args = [...arguments];   =>等價於  Array.prototype.slice.call(arguments);

}

相關文章
相關標籤/搜索