1. 程式人生 > 其它 >神奇的Object.assign()

神奇的Object.assign()

Object.assign() 方法用於將所有可列舉的屬性的值從一個或多個源物件複製到目標物件。它將返回目標物件。

1、Object.assign()可以在物件為一層的時候,實現簡單的“深拷貝功能”

var obj1 = {a:'1',b:'2'} var obj2 = Object.assign({}, obj1 ) obj2.a = '3' console.log(obj1) //{a:'1',b:'2'} console.log(obj2) //{a:'3',b:'2'} 當被可列舉屬性為一層的物件時,使用Object.assign可以實現簡單的‘深拷貝’功能,不會改變obj1的資料

2、Object.assign()可以在物件為兩層或者多層的時候,此時第一種的“深拷貝功能”便無法繼續使用。

var obj1= {name:{a:'1',b:'2'}}
var obj2= Object.assign({}, obj1)
obj2.name.a = '4'
console.log(obj1) //name:{a:4,b:'2'}

console.log(obj2) //name:{a:4,b:'2'}

當被可列舉屬性為多層的物件時,使用Object.assign可以複製obj1的內容,但是會改變obj1的資料