📌  相关文章
📜  如何在 ES6 中将属性从一个对象复制到另一个对象?

📅  最后修改于: 2022-05-13 01:56:29.491000             🧑  作者: Mango

如何在 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
}