2013-04-11 46 views
0

我想作以下模塊的NodeJS:爲什麼我不能創建一個封閉在一個的NodeJS模塊

exports.method = function() {  
    var init = true; 

    return function (args) { 
    console.dir(args); 
    }; 
}; 

但是,當我調用這個方法我沒有得到控制檯消息:

require('./module.js').method({test: 1}); 

它返回一個函數,而不是調用它。

+1

這不正是你問做什麼。你想要它做什麼? – 2013-04-11 04:09:58

回答

5

您需要執行外部函數,否則您只需將其分配給exports.method

換句話說:

exports.method = function() {  
    var init = true; 

    return function (args) { 
    console.dir(args); 
    }; 
}(); 

注後()

+0

謝謝。有用。但是關閉對節點js內存的影響如何? – Erik 2013-04-11 04:14:10

+0

他們基本上以你期望的方式影響記憶。閉包將引用內存中的內存,否則可能會被銷燬。但是如果你需要訪問這個範圍,那麼這是一個完全合理的內存使用。 JavaScript廣泛使用閉包;這是一種半功能語言。 – 2013-04-11 04:20:50

相關問題