const a = {x: "Hi", y: "Test"}
const b = ???
// b = {x: "Bye", y: "Test"}
// a = {x: "Hi", y: "Test"}
如何將x設置爲「Bye」而不改變?如何在不改變對象的情況下更改對象的屬性?
const a = {x: "Hi", y: "Test"}
const b = ???
// b = {x: "Bye", y: "Test"}
// a = {x: "Hi", y: "Test"}
如何將x設置爲「Bye」而不改變?如何在不改變對象的情況下更改對象的屬性?
到Object.assign
另一種是object spread operator:
ES6有一個內置的功能爲複製對象的屬性,Object.assign
const b = Object.assign({}, a, {x: 'Bye'})
這裏我們創建一個空對象,推動所有的a
s鍵值對,然後是我們要寫入的新鍵值對。因爲空對象是第一個參數,我們該變異對象,而不是a
其實蔓延運營商desugars到Object.assign所以它沒有那麼多一個替代方案,兩者是等同的。 https://github.com/tc39/proposal-object-rest-spread/blob/master/Spread.md –