为什么我不能在另一个模块中使用我的JS揭示模块功能?

时间:2017-09-10 15:34:44

标签: javascript module require revealing-module-pattern

我正在使用JavaScript开发一个项目,我使用显示模块模式在单独的文件中编写代码。

我也在利用Gulp将这些文件连接成一个app.js文件。

我遇到的问题是当我尝试在另一个模块中使用一个模块时。请看下面的示例代码:

我的app.js文件与此类似:

const componentOne = (function(){ ... return { myMethod: myMethod} })();
const componentTwo = (function(){ ... return { myMethod: myMethod} })();
const componentThree = (function(){ ... return { myMethod: myMethod} })();

在单个组件文件中,我可以从componentTwo调用componentOne.myMethod(),它可以按预期工作。

然而,我遇到的问题是当我想从componentTwo中调用componentThree.myMethod()时。我得到的错误是componentThree是未定义的。但是,当我手动修改已编译的app.js以将componentThree代码块移动到componentTwo之上时,它可以正常工作。

我想理解为什么会这样,如果有任何方法可以不使用像Browserify这样的东西。或者Browserify(或webpack,requirejs等)是解决这类问题的好方法吗?

0 个答案:

没有答案