7
在審閱ES6文檔時,我注意到建議在更詳細的Object.assign()
方法上使用擴展語法。但是,對於如何實現這一點,我有點困惑。{... object,property:value}如何使用擴展語法?
在這種情況下被分解到key: value
雙,之後在逗號右側的財產,則添加或覆蓋object
,最後被重組?
在審閱ES6文檔時,我注意到建議在更詳細的Object.assign()
方法上使用擴展語法。但是,對於如何實現這一點,我有點困惑。{... object,property:value}如何使用擴展語法?
在這種情況下被分解到key: value
雙,之後在逗號右側的財產,則添加或覆蓋object
,最後被重組?
在這種情況下,對象是被分解爲鍵:值對,之後逗號右側的屬性被添加或覆蓋,並最終重新組合?
原始對象object
的鍵 - 值對實際被組合(融合)與具有一個額外的性能var2
(之後就被組合以newObject
)新對象使用。
您可以認爲它爲object
正在成爲newObject
的子集,在使用擴展語法的位置,而具有相同鍵的屬性被覆蓋。
檢查下面的例子:
const object = { txt: 'Test' };
const newObject = {...object, var2: 'aa' };
// logs Object {txt: "Test", var2: "aa"}
console.log(newObject);
const object2 = { txt: 'Test' };
const newObject2 = {...object, txt: 'Test2', var2: 'aa' };
// Object {txt: "Test2", var2: "aa"}
console.log(newObject2);
// merging all objects to a new object
var object3 = {first: 'Hello', second: 'World'};
var newObject3 = {...object, anotherVar: 'stack', ...object2, ...object3};
// Object {txt: "Test", anotherVar: "stack", first: "Hello", second: "World"}
console.log(newObject3);
閱讀本http://stackoverflow.com/a/41615569/7404943 – barbsan
這就是它概括地說 –
你是肯定不會讀* ES6 * docs - 對象傳播仍然是一個實驗性提議。你在讀什麼?請鏈接它。 – Bergi