为对象属性分配默认值
为对象中所有值为undefined
的属性分配默认值。
- 使用
Object.assign()
创建一个新的空对象,并将原始对象复制到新对象中以保持键的顺序。 - 使用
Array.prototype.reverse()
和展开运算符(...
)从左到右组合默认值。 - 最后,再次使用
obj
来覆盖原本有值的属性。
const defaults = (obj, ...defs) =>
Object.assign({}, obj, ...defs.reverse(), obj);
defaults({ a: 1 }, { b: 2 }, { b: 6 }, { a: 3 }); // { a: 1, b: 2 }