我們都知道 JavaScript 的物件是採用傳址參考的特性,也就是說,如果將 A 物件賦予 B 物件,一旦在 B 物件中改動了內容,A 物件也會跟著受影響。然而,在學習框架的過程中,有個叫做不可變性(immutability)的觀念,強調在使用資料時不希望直接對其進行更改,避免造成不可追蹤性。因此,解決方法是提倡開發者在每次使用資料之前,先將其物件複製出來。
物件複製可以分為淺層複製和深層複製。在 JS ES6 語法中,有個叫做擴展運算子(spread operator)的語法可以用來進行淺層複製。例如:
const objA = { ... };
const objB = { ... };
const combineAB = { ...objA, ...objB };
這樣可以將兩個物件進行合併