您的位置:首页 > Web前端 > JavaScript

Javascript 连续赋值运算

2016-03-07 14:37 429 查看
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">看到ityye上一篇文章,</span><a target=_blank href="http://www.iteye.com/topic/785445" style="color: rgb(0, 102, 153); text-decoration: none; font-family: Helvetica, Tahoma, Arial, sans-serif; font-size: 14px; font-weight: bold; line-height: 21px; text-align: center; background-color: rgb(222, 227, 231);">写了10年Javascript未必全了解的连续赋值运算</a><span style="font-family:Arial, Helvetica, sans-serif;"><span style="background-color: rgb(255, 255, 255);">。</span></span>


var a = {n:1};  
a.x = a = {n:2};  
alert(a.x); // --> undefined
</pre><pre name="code" class="javascript">var a = {n:1};  
var b = a; // 持有a,以回查  
a.x = a = {n:2};  
alert(a.x);// --> undefined  
alert(b.x);// --> [object Object]


分析下 a.x = a = {n:2},

a原先是指向{n:1}这个对象,

先执行 a= {n:2},a指向{n:2}对象,

然后a.x = a,前面的a还是引用之前这个对象{n:1},执行后{n:1}变为{n:1,x{n:2}},所以a没有x这个属性,但是第二段代码里面b是有x属性的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: