亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

一道關于對象引用的JS面試題

一道關于對象引用的JS面試題

var obj1={x:5};var obj2=obj1;obj1.a=obj1={x:6};console.log(obj1.a); //undefinedconsole.log(obj2.a);//{x:6}自己理解的正好和答案相反,求解
查看完整描述

2 回答

?
慕絲7291255

TA貢獻1859條經驗 獲得超6個贊

分析代碼:
a.x=a={n:2}
js的賦值運算是右結合的,上面等同于a.x=(a={n:2})
js的求值運算是從左到右的(PS:和同事討論,他說是從左到右,我認為是從右到左,最后發現是我錯了)
1)a.x=(括號內的最終結果)
查找a的x屬性不存在后在a指向的對象中添加一個屬性x,這個x屬性要把一個結果賦給它,那好吧,我等著結果

https://img1.sycdn.imooc.com//5b66fd510001b49504580141.jpg

2)因為是要獲得括號內的結果,那么a.x就一直等著括號內給他返回結果,所以開始求值a={n:2}得到結果后返回給這個新屬性x

https://img1.sycdn.imooc.com//5b66fd620001b47806960160.jpg

3)回到括號內的a={n:2},a發生指向改變了

https://img1.sycdn.imooc.com//5b66fd700001c4f806970163.jpg

查看完整回答
反對 回復 2018-08-05
  • 2 回答
  • 0 關注
  • 1158 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號