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

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

一個(gè)關(guān)于this問(wèn)題

一個(gè)關(guān)于this問(wèn)題

狐的傳說(shuō) 2019-02-26 20:16:19
window.val = 1;var obj={val: 2, dbl: function () {this.val *= 2;val *= 2; console. log('val:', val) ; console. log( 'this.val:', this.val) ; } };//說(shuō)出下面的輸出結(jié)果obj.dbl();var func = obj.dbl; func();這個(gè)問(wèn)題我知道放在console中運(yùn)行去答案,想要的分析this指向問(wèn)題。
查看完整描述

3 回答

?
眼眸繁星

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

var func = obj.dbl;
func();

第一句把函數(shù)引用賦值給一個(gè)變量,會(huì)造成 this 丟失,所以 func 內(nèi)部的 this 是指向全局對(duì)象的。所以函數(shù)內(nèi)部 this.val => window.val => val => 1 。這三個(gè)是相等的。
所以結(jié)果是:
this.val = this.val * 2 => 2
val = val * 2 => 4

val: 4this.val: 4


查看完整回答
反對(duì) 回復(fù) 2019-02-26
?
慕哥6287543

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

考慮了很久,執(zhí)行obj.dbl()時(shí),this.val 的 this 指向 obj ,而下一行的 val 指向 window。所以,由 window.val 輸出 2,obj.val 輸出4,最后一行func(); 的調(diào)用者是 window, 所以,現(xiàn)在的 this.val 的 this 指向 window,剛剛window.val已經(jīng)是2了,
所以現(xiàn)在this.val = 2;的執(zhí)行結(jié)果就是4,然后val=2;的執(zhí)行結(jié)果,就是8了。所以,最終的結(jié)果就是輸出2、4、8、8

查看完整回答
反對(duì) 回復(fù) 2019-02-26
?
繁星淼淼

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

var func = obj.dbl; 這一步已近改變了this指向全局
當(dāng)執(zhí)行func();的時(shí)候this.val = 2;val = 2;都是對(duì)全局變量的修改 默認(rèn)全局為1 相當(dāng)于12
然后console. log('val:', val) ;console. log( 'this.val:', this.val) ;都是打印修改后的全局變量而已
func();執(zhí)行一次1 乘以 2 乘以 2 執(zhí)行兩次1 乘以 2 乘以 2 乘以 2 乘以 2

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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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