我正在尝试创建一个对象实例。在面对 Object.assign()
时,我有点困惑。下面两个代码有什么区别?
const obj3 = Object.assign(obj2, obj1);
并且:
let obj2: model;
obj2= obj1;
我正在尝试创建一个对象实例。在面对 Object.assign()
时,我有点困惑。下面两个代码有什么区别?
const obj3 = Object.assign(obj2, obj1);
并且:
let obj2: model;
obj2= obj1;
赋值只会在内存中创建对象的另一个引用。如果您进行赋值,然后通过其中一个变量名进行更改,则另一个变量也会发生更改,因为它们是同一对象。
Object.assign
将把第二个(和更多)参数的所有可枚举自有属性赋值给第一个参数,并返回第一个参数。 因此:
const obj3 = Object.assign(obj2, obj1);
有点像
for (const prop in obj1) {
obj2[prop] = obj1[prop]
}
obj3 = obj2;
(使用普通对象 - 跳过自身方面)
它们非常不同。