如何在 ES6 中将属性从一个对象复制到另一个对象?
一个对象的属性可以通过不同的方法复制到另一个对象中。以下是其中一些方法。
Object.assign() :通过使用 Object.assign() 方法,将一个或多个源对象的所有可枚举属性复制到目标对象。此方法返回修改后的目标对象。如果目标对象的属性与源中的属性具有相同的键,则它们将被覆盖。来自较新来源的属性会覆盖来自较早来源的属性。 Object.assign() 仅将可枚举和拥有的属性从一个对象复制到另一个对象。结果,它在源和目标上调用 getter 和 setter。因此,它分配属性而不是复制或定义新属性。合并源可能包含 getter,因此不适合将新属性合并到原型中。
句法:
Object.assign(target, ...sources)
例子:
JavaScript
JavaScript
JavaScript
输出:
{
a: 3,
b: 2,
c: 4
}
{
a: 3,
b: 2,
c: 4
}
{
a: 3,
b: 5,
c: 4,
d: 6
}
{
a: 3,
b: 5,
c: 4,
d: 6
}
使用展开运算符:数组表达式或字符串可能具有展开语法 (...) 以在没有或多个参数(用于函数调用)或元素(用于数组字面量)的地方展开,或者对象表达式可能在没有或的地方展开多个键值对(用于对象字面量)。
JavaScript
输出:
{
a: 3,
b: 5,
c: 4,
d: 6
}
通过使用for循环:需要遍历源对象(即obj2)的属性,并将具有值的属性赋值给目标对象obj1。但是,如果我们使用一个 for 循环,则此方法仅限于两个对象。
JavaScript
输出:
{
a: 3,
b: 2,
c: 4
}