JS引用类型指针的工作方式
var a = {n:1};
var b = a;
a.x = a = {n:2};
最后这句a.x = a = {n:2} 先执行a.x,此时a和b均共享{n:1}的栈指针,于是{n:1}变为{n:1,x:undefined};
接着执行a = {n:2},此时a不再和b共享同对象的指针而是指向新对象{n:2}。
下一步 a.x = a 是最关键的地方,关键之处在于这两个“a”已经是完全不一样的东西,前者(其实可以把它看成b)指向{n:1,x:undefined},后者指向{n:2}。
执行这一步,{n:
原创
2020-10-26 15:40:17 ·
166 阅读 ·
0 评论