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

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

為什么this.func不是函數(shù)?(構(gòu)造函數(shù)內(nèi)的方法,在構(gòu)造函數(shù)內(nèi)調(diào)用,提示這個(gè)方法不是函數(shù))

為什么this.func不是函數(shù)?(構(gòu)造函數(shù)內(nèi)的方法,在構(gòu)造函數(shù)內(nèi)調(diào)用,提示這個(gè)方法不是函數(shù))

慕哥6287543 2018-09-03 12:15:26
function Bird(name){    this.name = name;    this.sayName = function(){        console.log('hello '+this.name +' guys');     }     setTimeout(function(){       this.sayName();     },1000);  }var a = new Bird(); a.sayName();Uncaught TypeError: this.sayName is not a function我指setTimeout上調(diào)用的this.sayName().如果它指window對(duì)象上沒(méi)有sayName函數(shù)我還能理解,但是去掉this.sayName()后面的括號(hào)后瀏覽器就沒(méi)出現(xiàn)錯(cuò)誤提醒了。為什么我腦子短路了
查看完整描述

1 回答

?
SMILET

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

首先,異步函數(shù)運(yùn)行的時(shí)候,this已經(jīng)不是當(dāng)前對(duì)象了,而是window,所以setTimeout里面的this.sayName其值為undefined。

然后,去掉括號(hào)之后僅僅表示取出這個(gè)引用的值,但是并不會(huì)對(duì)它做任何操作。
如果這個(gè)值不存在,那么取出的值就是undefined,然后就這么完了,當(dāng)然也就不會(huì)出錯(cuò)。

你可以把這里改成這樣,然后你再運(yùn)行看看是什么結(jié)果:

setTimeout(function(){   console.log(this.sayName);
},1000);


查看完整回答
反對(duì) 回復(fù) 2018-10-21
  • 1 回答
  • 0 關(guān)注
  • 422 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(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)