Object.assign 空值无效
时间: 2023-08-15 11:13:55 浏览: 188
ES6 Object.assign()的用法及其使用
5星 · 资源好评率100%
你好!关于 `Object.assign` 函数,它用于将一个或多个源对象的属性复制到目标对象中。当源对象中存在空值或 undefined 时,确实会导致无效的情况。
这是因为 `Object.assign` 函数会忽略源对象中的空值或 undefined,而只复制非空值属性。如果目标对象的属性为 undefined 或空值,那么会被源对象的属性覆盖。
例如,考虑以下代码:
```javascript
const source = { a: null, b: undefined, c: 123 };
const target = { a: 456, b: 'abc', c: null };
Object.assign(target, source);
console.log(target);
```
输出结果将是:
```
{ a: null, b: undefined, c: 123 }
```
可以看到,`source` 对象中的空值属性 a 和 b 并没有复制到目标对象 target 中,而是保留了原来的值。
如果你想要将空值属性复制到目标对象中,可以使用其他方法,例如自定义函数或扩展运算符等。请确保在复制属性时处理空值的情况。
阅读全文