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

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

JS對象直接量里面的this問題

JS對象直接量里面的this問題

梵蒂岡之花 2018-12-06 15:44:20
StartFragment var?b={a:12,c:a};alert(b.c)我知道這樣寫是不對的,但是如果我這樣寫 var?b={a:12,c:this.a};alert(b.c)為什么也是不對?這里的this指的是什么?或者我這樣寫,b={a:12,c:b.a};alert(b.c)為什么也是不對的。有沒有大俠愿意幫忙解釋下,謝謝。
查看完整描述

5 回答

?
藍山帝景

TA貢獻1843條經驗 獲得超7個贊

一,你知道的就不說了;

二,首先讓你看看JSON的正確寫法,如下

var obj={
    "A":12,
    "B":10 
};

也就是說類似“A”,“B”是需要有引號(當然沒有引號也可以運行)。但是我覺得如果一接觸json就是這種寫法,那么今天你就不會有這樣的疑問了。

接著說你寫的第二個例子,這里this指的是window對象,所以A是undefined。

三,從語法上就是錯的。

查看完整回答
反對 回復 2018-12-24
?
明月笑刀無情

TA貢獻1828條經驗 獲得超4個贊

這邊的this 其實是window,全局中沒有定義a,所以你的第2個語句顯示的是undefined

查看完整回答
反對 回復 2018-12-24
?
收到一只叮咚

TA貢獻1821條經驗 獲得超5個贊

同一樓,c要引用a只能作為函數在里面引用:

var b={a:12,c:function(){return this.a;}};

b.c();

this是指向代碼調用/執行者,上面this指向b所以能取到b的a。

你而的代碼執行者是window所以this也是window。

查看完整回答
反對 回復 2018-12-24
  • 5 回答
  • 0 關注
  • 551 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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