假设我有一个options变量,我想设置一些默认值.
这两种选择的好处/缺点是什么?
使用对象传播
options = {...optionsDefault, ...options};
Run Code Online (Sandbox Code Playgroud)
或者使用Object.assign
options = Object.assign({}, optionsDefault, options);
Run Code Online (Sandbox Code Playgroud)
我不了解对象内的传播语法。
console.log(...false) // TypeError not iterable
console.log(...1) // TypeError not iterable
console.log(...null) // TypeError not iterable
console.log(...undefined) // TypeError not iterable
Run Code Online (Sandbox Code Playgroud)
我理解上面的代码由于非迭代器而发生错误。
但是这些代码运行良好。
console.log({...false}) // {}
console.log({...1}) // {}
console.log({...null}) // {}
console.log({...undefined}) // {}
Run Code Online (Sandbox Code Playgroud)
请让我知道为什么上述代码有效。