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

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

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

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

繁星coding 2019-02-27 17:36:00
window.val = 1;var obj={val: 2, dbl: function () {this.val *= 2;val *= 2; console. log('val:', val) ; console. log( 'this.val:', this.val) ; } };//說出下面的輸出結(jié)果obj.dbl();var func = obj.dbl; func();這個問題我知道放在console中運(yùn)行去答案,想要的分析this指向問題。
查看完整描述

3 回答

?
UYOU

TA貢獻(xiàn)1878條經(jīng)驗(yàn) 獲得超4個贊

var func = obj.dbl;
func();

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

val: 4this.val: 4


查看完整回答
反對 回復(fù) 2019-02-27
?
繁花如伊

TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個贊

考慮了很久,執(zhí)行obj.dbl()時,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

查看完整回答
反對 回復(fù) 2019-02-27
?
哈士奇WWW

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

var func = obj.dbl; 這一步已近改變了this指向全局
當(dāng)執(zhí)行func();的時候this.val = 2;val = 2;都是對全局變量的修改 默認(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

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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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