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

鍍金池/ 問(wèn)答/HTML/ 為什么這個(gè)this指向obj對(duì)象呢?

為什么這個(gè)this指向obj對(duì)象呢?

第一個(gè)this是1990 為什么第二個(gè)是obj了呢?

var obj = {
    birth: 1990,
    getAge: function () {
        var b = this.birth; // 1990
        var fn = () => new Date().getFullYear() - this.birth; // this指向obj對(duì)象
        return fn();
    }
};
obj.getAge(); // 25
回答
編輯回答
編輯回答
艷骨

后面那個(gè)跟第一句的this上下文其實(shí)是一樣的。

箭頭函數(shù)了解一下,這里講得更詳細(xì)廖雪峰-箭頭函數(shù)

2017年4月17日 14:49
編輯回答
汐顏

箭頭函數(shù)的this綁定的是箭頭函數(shù)所在執(zhí)行上下文的this。
也就是說(shuō),代碼中,this.birth === obj.birth。
new Date().getFullYear() - this.birth也就是2018 - 1990

2017年5月17日 02:04
編輯回答
筱饞貓

說(shuō)的俗一點(diǎn),應(yīng)該就能解釋清楚:

箭頭函數(shù)在哪個(gè)function中定義的,那個(gè)function就是它爸爸,它的this就代指它爸的this。
若箭頭函數(shù)在全局中定義,那么this代指window 或 {}(服務(wù)端)

本例中,箭頭函數(shù)在getAge這個(gè)function中定義的,那么getAge就是它爸,箭頭函數(shù)中提到的this就是getAge的this。 obj.getAge()執(zhí)行后, getAge的this指向obj, 所以箭頭函數(shù)中的this也指向obj

題外話:
看了你和其他人的互動(dòng),你是不是對(duì)普通函數(shù)的this理解還不清楚?普通函數(shù)的this,比如本例中的var b用到this,這種普通函數(shù)this運(yùn)行時(shí)才能確定指向哪個(gè)對(duì)象:綁定在誰(shuí)身上執(zhí)行,這個(gè)this就指向誰(shuí)。 比如:

obj.getAge(); // 那么getAge綁定在obj上執(zhí)行了,var b中的this就是指obj, 結(jié)果為28

var objX = {birth:2015};
obj.getAge.call(objX); //此時(shí)getAge綁定在objX上執(zhí)行,var b中的this指向objX, 結(jié)果為3
2017年3月23日 16:19
編輯回答
掛念你
  • 箭頭函數(shù)沒(méi)有它自己的 this 值。
  • 箭頭函數(shù)內(nèi)的 this 值繼承自外圍作用域。
  • 箭頭函數(shù)中調(diào)用 this 時(shí),是簡(jiǎn)單的沿著作用域鏈向上尋找,找到最近的一個(gè) this 拿來(lái)使用。
2017年5月19日 04:51