当我检查节点的全局和模块时,我发现 require 不在其中。我不知道这是否神奇,但如果有人可以解释 require 是否是全局的,那么为什么它不在全局对象中也不在模块对象中?
因为它在scope。当加载到文件中时,节点在幕后wraps https://github.com/joyent/node/blob/v0.10.16/src/node.js#L878-885源代码,使您的代码实际上如下所示:
(function (exports, require, module, __filename, __dirname) {
// here goes what's in your js file
});
然后它调用匿名函数,传入一个新对象exports
以及对require
功能。 (进一步详细信息请参见此处。 https://stackoverflow.com/a/18317790/201952)
现在应该很明显为什么你可以打电话require
尽管它不是真正的全球性的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)