【发布时间】:2012-02-06 05:20:53
【问题描述】:
基本示例:
var b = 10;
var c = b;
b++;
console.log(b,c);
>> 11 10
c 看起来像 b 的副本。
但在另一种情况下:
var x = {};
var y = x;
x.abc = 10;
console.log(x.abc, y.abc);
>> 10 10
为什么y 不是x 的副本,而是指向同一个实例x 指向的引用?
另外,我猜b++ 创建了另一个实例,所以b 指向新实例,而c 指向旧实例。不过……
var u = 10;
setTimeout(function() {
console.log(u);
}, 10000)
u++;
>> 11
如果u++ 创建了一个新实例,那么匿名函数内部的u 应该指向旧的u,不是吗?
【问题讨论】:
标签: javascript reference variable-assignment