arg*_*g20 5 javascript node.js webstorm
这两行是一样的吗?
var myModule = new require('my-module')
Run Code Online (Sandbox Code Playgroud)
和:
var myModule = require('my-module')
Run Code Online (Sandbox Code Playgroud)
前者帮助intelliJ Idea(或Webstorm)对方法(例如猫鼬中的“模型”)进行自动完成(至少它没有显示令人讨厌的黄色下划线,上面写着“未解决的函数或方法”
require。new应该在实例化类或函数的新实例时使用,否则不应该使用。您几乎肯定不想实例化require.
但是,如果您想实例化由 返回 的类/函数的实例require,您可能会执行以下操作:
var myModuleInstance = new (require('my-module'));
Run Code Online (Sandbox Code Playgroud)
额外的包含括号意味着您正在实例化返回的对象,而不是直接实例化require.
就 JavaScript 而言,它们并不相同。require()就函数而言?看起来是这样,但我仍然建议不要这样做。
使用在幕后new做了很多事情。会受到 的使用的影响,因为它的内部值会发生变化。require()newthis
var foo = {
path: '/foo/bar/',
require: function (module) {
console.log(this.path + module);
}
};
foo.require('baz'); // logs /foo/bar/baz
new foo.require('trev'); // logs undefinedtrev
Run Code Online (Sandbox Code Playgroud)
目前require()似乎根本不使用this(因为无论您是否更改此值,它的行为都不会改变)。然而,并不能保证将来也是如此。它没有记录。
TL;DR:不要使用它。
| 归档时间: |
|
| 查看次数: |
2071 次 |
| 最近记录: |