假設: defaults 是有預設值的物件,obj 是要附加這些預設值的物件。
錯誤做法:以下的做法,obj 原來的屬性反而會被預設值覆蓋掉❗️
Object.assign(obj, defaults) // ❌
正確做法:
// ╭╮ <-- start with a new object obj = Object.assign({}, defaults, obj) // ✅ // ╰─╯ <-- override defaults with obj
也可以用 Spread syntax (...) 來寫:
obj = {...defaults, ...obj}
(2020) JavaScript: The Definitive Guide (6.7 Extending Objects)
Spread syntax (...)
Last updated 2 years ago