【问题标题】:Copy objects in JavaScript在 JavaScript 中复制对象
【发布时间】:2015-04-18 07:54:45
【问题描述】:

所以我正在阅读 JavaScript 对象中的一些核心概念: 这是复制对象的代码:

function copy(a, b) {
    for (prop in b) {
        a[prop] = b[prop];
    }
    return a;
}

它将用类似的属性 o b 覆盖 a 的属性。

现在如果我这样做:

function union(a, b) {
    return copy(copy({}, a), b);
}

这本书说如果ab 具有相同的属性,union 将使用来自a 的值。需要澄清一下。

【问题讨论】:

  • copy({}, a) 只会产生a。所以copy(copy({}, a), b)copy(a, b)是一样的
  • 把书从你的窗外扔...
  • @royhowie 不,不是。 OP 的代码创建了一个新对象,但您的版本发生了变异 a

标签: javascript oop


【解决方案1】:

书错了,可能是笔误。

如果ab 具有相同的属性,则将使用来自a 的值。

自从上次调用copy 以来,如果ab 具有相同的属性,union 将使用来自b 的值作为第二个参数传递b

【讨论】:

    猜你喜欢
    • 2014-01-10
    • 2013-09-10
    • 1970-01-01
    • 2013-03-07
    • 2020-12-13
    • 1970-01-01
    • 1970-01-01
    • 2012-07-03
    • 1970-01-01
    相关资源
    最近更新 更多