1
我最近開始在我的NodeJS express模塊中使用包裝匿名函數,因爲它以某種方式幫助我編寫更乾淨的代碼。在Node中爲module.exports使用包裝匿名函數是不好的做法嗎?
但是我不確定這是否被認爲是壞的/節點環境中的良好做法(可能是一些調試/優化問題?),它被Coffeescript廣泛使用,所以我想它一定是好的,是嗎?
快遞控制器例如:
module.exports = (function() {
function LinksController() {}
var moment = require('moment'),
_ = require('underscore'),
Q = require('q');
LinksController.edit = function edit(req, res, next) {
...
}
return LinksController;
})();
有趣的是,該js文件基本上包裹在一個'(function(){'...'})();'無論如何? – Dreen
我不知道這是否是不好的做法,但這當然不是必要的。通常,內部對象構建函數用於爲「私有」函數創建一個不應該從全局範圍訪問的閉包,但是在「require」導入的腳本中的腳本不會將變量附加到全局範圍無論如何,我相信。 – apsillers
咖啡腳本部分使用了類似的方法,因爲這對客戶端JavaScript來說是必須的**,以防止污染全局名稱空間。 –