基本的例子:
var b = 10;
var c = b;
b++;
console.log(b,c);
>> 11 10
Run Code Online (Sandbox Code Playgroud)
c看起来像是副本b.
但在另一个案例中:
var x = {};
var y = x;
x.abc = 10;
console.log(x.abc, y.abc);
>> 10 10
Run Code Online (Sandbox Code Playgroud)
为什么y不是副本x,而是指向同一实例的引用x指向?
此外,我猜测b++创建了另一个实例,因此b指向新实例但c指向旧实例.然而...
var u = 10;
setTimeout(function() {
console.log(u);
}, 10000)
u++;
>> 11
Run Code Online (Sandbox Code Playgroud)
如果u++创建一个新实例,那么u匿名函数里面应该指向旧的u,不应该吗?