js连续赋值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js连续赋值相关的知识,希望对你有一定的参考价值。

var a={n:1}

a.x=a={n:2}

console.log(a.x);

undefined

 

变量a保存对象{ n : 1 }的内存地址

a. x = a; a对象新增x属性,x属性也指向{ n :1 } 的内存地址,  此时 a 对象结构为

 {

  n:1,

  x:{n:1}

}

随后a = { n : 2 },意思是a重新指向 { n : 2 }这个对象的内存地址,这个对象里面没有x属性;

所以a.x是undefined;

也可以把上面的代码这么解析:

var  a={n:1}

a.x={n:1}

a={n:2}

console.log(a.x);

undefined

以上是关于js连续赋值的主要内容,如果未能解决你的问题,请参考以下文章

js中变量的连续赋值

js连续赋值

JS变量定义时连续赋值的坑!

JS基础-连续赋值

js 连续赋值

js连续赋值