共计 390 个字符,预计需要花费 1 分钟才能阅读完成。
var a = {n:1};
var b = a;
a.x = a = {n:2};
console.log(a);
console.log(b);
console.log(a.x);
console.log(b.x);
输出结果://{n:2}
//{n:1,x:{n:2}}
//undefined
//{n:2}
看明白了网上的解释,传送,自己再整理了下。有如下 2 点知识点:
1. 连等运算符 首先要确定所有 变量地址
2. 连等运算符 是 由右向左 执行
知道以上 2 点的话再回头看下,
第一步:
var a = {n:1};
var b = a;
执行到这里,地址指向如下:
第二步
a.x = a = {n:2};
走到这段代码时,
分如下几块:
a. 确定 2 个地址,a.x 和 a,a 的地址已经指向了{n:1},x 为新声明,地址指向 null,此时指向关系如下:
b. 执行 a = {n:2};
c. 执行 a.x = a;
到此,执行完毕,打印 a.x 时 为 undefined,b.x 为{n:2}.
正文完
发表至: javascript
2019-11-08