在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/Java  網(wǎng)絡(luò)安全  HTML  Office/ this指向的問題,希望大家指點一下

this指向的問題,希望大家指點一下

這兩個在學(xué)ES6的相關(guān)語法,在學(xué)到箭頭函數(shù)的this問題的時候,我與之前學(xué)的ES5中的this進(jìn)行相對比的時候,發(fā)現(xiàn)下面這行代碼得到不可思議的結(jié)果:
var age = 77;

function foo() {
    var age = 18;
    setTimeout(function () {
        console.log(this.age);//undefined
    },3000)
}
foo();

clipboard.png

有沒有大佬知道這里面的問題。我的理解是這個應(yīng)該輸出77.但是這里卻輸出了undefined

回答
編輯回答
舊言

你看錯了吧,延時3s后輸出的才是77,沒錯

clipboard.png

clipboard.png

2017年2月21日 05:43
編輯回答
青黛色

知道問題所在了。
援引一位大神的解釋
在瀏覽器環(huán)境下正常的,seTimeout中的this實際指向window,輸出77。如果在node環(huán)境下運行就不一樣了。node環(huán)境下也有自己的setTImeout計時器,它的this指向Timeout對象,Timeout對象沒有age屬性,就返回undefined了。你自己可以輸出this看看就明白了。

2018年1月2日 19:41