相关疑难解决方法(0)

Javascript的赋值操作是复制引用?

基本的例子:

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,不应该吗?

javascript reference variable-assignment

6
推荐指数
3
解决办法
3023
查看次数