module.exports
是否必须在语法上位于包含导出的文件内?
例如,如果我定义一个全局函数属性 myDefine
并尝试从其内部执行 module.exports
赋值,那么这会起作用。
如果没有,为什么不呢?
file1.js
GLOBAL.myDefine = function(fn) {
module.exports = fn;
};
file2.js
require('./file1');
myDefine(function() {
return function MyExport() {};
});
最佳答案
当 Node 需要文件时,它将内容包装在外部函数中:
function(exports, require, module, __filename, __dirname){
}
当 file1.js 被解释时,module.exports = fn
将引用它自己的本地 module
实例,因此它不会对 file2.js 产生影响。为了使其正常工作,您需要以某种方式将 file2.js module
实例传递给 file1 的 myDefine()
例如
文件1.js
GLOBAL.myDefine = function(module, fn) {
module.exports = fn;
}
文件2.js
require('./file1');
myDefine(module, function() {
return function MyExport() {};
});
关于javascript - 'module.exports' 在语法上是否必须位于包含导出的文件内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30767598/