2012-08-30 37 views
0

在NodeJS中,如果我們使用this關鍵字定義函數,它就會暴露。module.exports或this.func(){}?

例如:

// module.js 

this.func1 = function() { 
    console.log('func1'); 
} 

然後,如果你require('module')您可以訪問FUNC1。

我想知道它與module.exports有什麼不同?

感謝

回答

2

簡單的測試:創建新的文件,並做到:

console.log(this); 
console.log(module.exports); 

this.test = 1; 

console.log(this); 
console.log(module.exports); 

這清楚地表明,thismodule.exports參考,即沒有任何區別。

+0

哦!好的,謝謝..所以我可以使用它... –

+0

我建議使用'module.exports',因爲'this'關鍵字將根據您放置它的位置而改變它的含義。 – freakish

+0

對,但實際上我想獲得當前模塊中定義的所有功能的列表。所以如果我用'this'來定義它們,那麼只有我能夠做到這一點。有沒有其他方法? –