“var self = module.exports;”是什么意思
what does "var self = module.exports;" mean?
我看到了一行代码:
var self = module.exports ;
在 NodeJS 项目中。
我知道"module.export"的含义,但我找不到有关此代码的任何信息。有人可以帮助我吗?
大多数情况下,人们使用名为 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
的快捷方式保存到局部变量中,以便可以引用self.something
而不是module.exports.something
。 它也可以是:
var myModule = module.exports;
名称self
在语言中没有特殊含义 - 只是一个变量名称 - 尽管它经常用作闭包中this
的保存值(这不是这里使用它的目的)。
通常不需要这个额外的快捷方式exports
因为它已经是module.exports
的预定义快捷方式,因此使用名为 self
的变量必须只是个人首选项编码风格,或者被没有意识到exports
已经是预定义快捷方式的人使用。
相关文章:
- @@(“at at”)在ES6 JavaScript中是什么意思
- minimy javascript是什么意思?Backbone.js
- var w = q||问2;这个表达式是什么意思
- 函数(i,val)在javascript中是什么意思
- 问号在这段代码中是什么意思
- 我不知道此代码中的这些符号是什么意思.十进制到二进制
- ||{}在javascript中是什么意思
- “转义字符串”在Regex中是什么意思?(Javascript)
- 这个代码是什么意思(history.replaceState和history.pushstate)
- :: 是什么意思
- 这是什么意思?getData([renderData]);
- MDN文档中关于弄清楚XUL元素的段落是什么意思:“如何将覆盖扩展转换为无重启”
- require('file_path')后面的后缀(模块)在javascript文件中是什么意思
- Twitter Bootstrap的Tab插件中“data-api”是什么意思
- 箭头函数 '() => {}' 在 Javascript 中是什么意思?
- 在这种情况下,“foo[x]”是什么意思?
- 在 http 请求中添加事件侦听器 ( request.on ) 是什么意思?而笏就是它的用途
- 这种格式是什么意思 T00:00:00.000Z
- 这行是什么意思“ operator.indexOf(btnVal) > -1”
- JQuery:这段代码是什么意思