1 回答

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊
var test={
a:1,
b:this.a
}
console.log(test.b)
來來來,你說一下 test.b 等于多少?
不要想當(dāng)然自意識(shí)認(rèn)為一個(gè)東西,用一個(gè)東西首先要去了解這個(gè)東西,this 是什么?
首先我們需要得出一個(gè)非常重要一定要牢記于心的結(jié)論,this的指向,是在函數(shù)被調(diào)用的時(shí)候確定的。
為了你更直觀的理解,我們先來看看這個(gè) demo:
var a = 'global'
var path = {
a: 'path',
resolve: function(parm) {
console.log(parm)
console.log(this)
}
}
var obj = {
a: 'obj',
b: path.resolve(this.a)
}
看看輸出結(jié)果你明白了什么?是不是什么也沒明白。
其中的 this.a 中的 this 是全局對(duì)象,如果全局對(duì)象是 window,那么這個(gè) this 就是 window 對(duì)象,如果全局在 node 環(huán)境下,那么這個(gè) this 就是 global 對(duì)象。
關(guān)于全局對(duì)象的 this,它是一個(gè)比較特殊的存在。全局環(huán)境中的 this,指向它本身。因此,這也相對(duì)簡(jiǎn)單,沒有那么多復(fù)雜的情況需要考慮。
// 通過this綁定到全局對(duì)象
this.a2 = 20;
// 通過聲明綁定到變量對(duì)象,但在全局環(huán)境中,變量對(duì)象就是它自身
var a1 = 10;
// 僅僅只有賦值操作,標(biāo)識(shí)符會(huì)隱式綁定到全局對(duì)象
a3 = 30;
// 輸出結(jié)果會(huì)全部符合預(yù)期
console.log(a1);
console.log(a2);
console.log(a3);
你說說你這個(gè)代碼里面的 this 是指向 path 還是 全局對(duì)象 window 或者 global 呢?
反正不是指向 module.exports,所以就得不到你想要的結(jié)果。
添加回答
舉報(bào)