2016-03-02 42 views
3

this什麼對象在模塊範圍內引用(我指的是node.js模塊)?這點指向模塊範圍?

console.log(this); 
console.log(this === module); //false 

它沒有參考module對象,所以它指向哪裏?

+0

你是指node.js模塊還是ES6模塊? – Bergi

+0

node.js模塊 –

回答

3

奇怪的是,它等於module.exports

console.log(this === module.exports); // => true 

就個人而言,我認爲這是愚蠢的。但是它就是這樣啊。

我不知道爲什麼我們有引用相同的確切的事情。 this,exportsmodule.exports都引用同一個對象。

我最好的猜測是它有一些向後兼容性。我很容易在這個問題上出錯。

+0

你知道這是什麼原因嗎? –

+0

它應該等於'process' –

+1

@self,我不同意,如果有的話,我希望'this === global'就像瀏覽器根範圍內的this === window'一樣。不是我認爲我會這麼做;只是爲了某種一致性。或者說,它是不確定的,因爲它沒有任何該死的感覺。 – naomik