[英]Scope of dependencies when exporting a module in Node.js
導出具有其他依賴關系的模塊時,最好是在模塊導出函數中還是在模塊導出函數之外包含該依賴關系? 我通常會看到后者,但似乎最好將它保留在本地范圍內。
例如:
var foo = require('foo');
module.exports = function(d) {
return foo(d)/2;
}
與
module.exports = function(d) {
var foo = require('foo');
return foo(d)/2;
}
只有在module.exports
和global
上module.exports
才能從節點中的其他模塊訪問。 與瀏覽器不同, var
創建本地引用。 引用節點的文檔 :
在瀏覽器中,頂級范圍是全局范圍。 這意味着在瀏覽器中,如果您在全局范圍內,var會定義一個全局變量。 在Node中,這是不同的。 頂級范圍不是全球范圍; Node模塊內的
var something
將是該模塊的本地內容 。
因此,兩個版本之間的差異是最小的 - 第一個版本在本地范圍內進行查找,而其他require.cache
每次調用函數時都需要require.cache
。 從我所看到的節點代碼,前者( var someVar = require('something');
)似乎是首選。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.