我正在使用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等)是解决这类问题的好方法吗?