【发布时间】: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);
}
这本书说如果a 和b 具有相同的属性,union 将使用来自a 的值。需要澄清一下。
【问题讨论】:
-
copy({}, a)只会产生a。所以copy(copy({}, a), b)和copy(a, b)是一样的 -
把书从你的窗外扔...
-
@royhowie 不,不是。 OP 的代码创建了一个新对象,但您的版本发生了变异
a。
标签: javascript oop