第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

一道關(guān)于對(duì)象賦值的js面試題

一道關(guān)于對(duì)象賦值的js面試題

鴻蒙傳說 2018-08-02 13:25:08
  var a = { n : 1};     var b = a;     a.x = a = {n:  2};     alert(a.x);     alert(b.x);輸出:undefined [object Object]請(qǐng)問:a.x = a = {n: 2}; 該句是如何賦值的?
查看完整描述

3 回答

?
12345678_0001

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊

  var a = { n : 1};  

  var b = a;  


  //語句從左到右執(zhí)行,賦值從右到左。

  //執(zhí)行a.x時(shí),a還是指向的是{n:1}的空間。

  //賦值a時(shí),a指針指向了{(lán)n:2},a.x中a原來指向的空間{n:1}添加x屬性,指向現(xiàn)在a指向的空間{n:2};


  a.x = a = {n:  2};  

  console.log(a.x);      //undefined

  console.log(b.x);     //{n:2} 


查看完整回答
反對(duì) 回復(fù) 2018-08-05
?
墨色風(fēng)雨

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超6個(gè)贊

應(yīng)該是從右到左的。a.x=a={n:2},
先是執(zhí)行a.x此刻a指向{n:1},
然后執(zhí)行 a={n:2}將a重新指向,
最后執(zhí)行a.x=a,即{n:1}.x = {n:2}.

查看完整回答
反對(duì) 回復(fù) 2018-08-05
?
ibeautiful

TA貢獻(xiàn)1993條經(jīng)驗(yàn) 獲得超6個(gè)贊

其實(shí)這類問題很容易理解,只需要記得變量只是對(duì)象的引用,變量并不是對(duì)象本身。

  1. 取值的時(shí)候順著變量找到對(duì)象;

  2. 賦值的時(shí)候則改變變量的指向。

所以

  1. 對(duì)于 var a = {n: 1},想象一個(gè)對(duì)象 {n: 1} 放地上,用 a 指著它;

  2. var b = a 就是 b 順著 a 找到 {n: 1},兩者同時(shí)指著它;

  3. a.x = a = {n:2} 左往右看,

    1. a.x 是對(duì) a 取值,順著 a 找到 {n: 1},再找到其 x 屬性等待賦值,

    2. 第二個(gè) a 本應(yīng)是取值,但右邊有 = 所以繼續(xù)變成了賦值操作,a 指向 {n:2}

    3. a = {n:2} 返回 {n:2},給了等待賦值的 {n: 1}.x;

  4. alert(a.x),順著 a 找到 {n:2},因?yàn)樵?3.2 中 a 改變了指向,而 {n: 2} 沒有 x 屬性;

  5. alert(b.x),順著 b 找到 {n: 1},{n: 1}在 3.1 得到了 x,順著 x 找到了 {n: 2}。


查看完整回答
反對(duì) 回復(fù) 2018-08-05
  • 3 回答
  • 0 關(guān)注
  • 1164 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)