Javascript 使用CommonJS的Webpack中的作用域是如何工作的
也许这并不特定于JS模块的CommonJS实现,但我的问题是scope如何导入模块 commonjs:foo.jsJavascript 使用CommonJS的Webpack中的作用域是如何工作的,javascript,webpack,commonjs,Javascript,Webpack,Commonjs,也许这并不特定于JS模块的CommonJS实现,但我的问题是scope如何导入模块 commonjs:foo.js var foo = { bar() { baz(); } } module.exports = foo; 主JS const foo = require('./foo.js'); function baz() { console.log('this is baz'); } foo.bar(); //-> ReferenceError: baz
var foo = {
bar() {
baz();
}
}
module.exports = foo;
主JS
const foo = require('./foo.js');
function baz() {
console.log('this is baz');
}
foo.bar();
//-> ReferenceError: baz is not defined
正常情况下,我希望已经找到baz,但似乎模块范围是完全隔离的。对吗?在我尝试做的事情中有什么方法或最佳实践吗?与webpack无关 javascript模块只有本地上下文 如果希望某些内容成为全局/窗口上下文的一部分,可以使用
global
变量
global.baz = baz;
或者更好地使用依赖项注入来传递回调:
var foo = {
bar(baz) {
baz();
}
}
然后可以使用它:
foo.bar(baz);
我想它可能与webpack无关,但为了安全起见,我想我应该把它包括进去。依赖注入似乎绝对是一种方式,谢谢你的帮助:)。很高兴帮助:-)