[英]what does “var self = module.exports;” mean?
我看到了一行代碼:
var self = module.exports ;
在一個nodejs項目中。
我知道“ module.exports”的含義,並且找不到有關此代碼的任何信息。 有人可以幫助我嗎?
大多數時候,人們使用稱為self
的變量來存儲對可能在另一個函數上下文中覆蓋的內容的引用。 (可以稱為任何名稱: _this
, that
等等)
例:
var lib = require('lib');
var self = module.exports;
function exportModule(module) {
// note that 'module' now refers to this function's argument
// but that's ok because I stored 'module.exports' in 'self' earlier
for(var p in module) {
self[p] = module[p];
}
}
exportModule(lib);
重要的提示:
self
可能是一個不好的變量名稱。 實際上,通常使用self
來存儲函數的this
(這是必需的,因為在新的函數范圍內this
會自動被覆蓋)。 變量名稱self
純粹是一個約定,但是破壞約定可能會使其他開發人員感到困惑。
更好的變量名稱可能是_exports
。
最后,您可能不應該首先為變量module
命名或exports
。
只是將module.exports
的快捷方式module.exports
到本地變量中,因此可以引用self.something
而不是module.exports.something
。 也可能是:
var myModule = module.exports;
名稱self
在語言中沒有特殊含義-只是一個變量名-盡管經常在閉包中將其用作this
值的保存值(此處未使用此名稱)。
通常不需要這種額外的快捷方式,因為exports
已經是一個預定義的快捷module.exports
所以使用變量命名的self
必須僅僅是一個個人喜好的編碼風格或正在使用的人誰不知道, exports
已經預定捷徑。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.