【发布时间】:2021-06-03 21:15:32
【问题描述】:
我的简单代码
const ob1 = {
a: 'pokushevski',
b: '2001',
};
const obj2 = {
obj1: {},
c: '1999',
};
const result = Object.assign(ob1, obj2);
console.log(result);
console.log(Object.getOwnPropertyNames(result));
输出
{ a: 'pokushevski', b: '2001', obj1: {}, c: '1999' }
[ 'a', 'b', 'obj1', 'c' ]
结果中的obj1 似乎与任何其他属性一样,没有对const obj1 的任何引用。
为什么?
【问题讨论】:
-
Object.assign()改变第一个参数的对象,你应该使用对象销毁/传播:const result = { ...obj1, ...obj2 }; -
你能告诉我们你的预期输出是什么吗?
-
@HaoWu 这个不行,你自己试试吧。
-
const result = { ...obj2, ...{ obj1 } };也许这就是你想要的
标签: javascript ecmascript-2016