大概是这样显示页面的index.js里面有两个依赖的模块a.js和b.js,于是我这么写 var a = require(“a.js”); var b = require(“b.js”); a.js使用b.js中dosomething(),因此a.js里面是这样的 var b = require(“b.js”); exports = { count:100, func1:function(){ b.dosomething(); }, func2:function(){ return count; } } b.js又要使用a.js中的func2(),于是 var a = require(“a.js”); var count = a.func2(); exports = { dosomething:function(){ //dosomething; }, dootherthing:function(){ //对count进行处理 } }
在我没进行模块化之前一些都没问题,因为函数声明都是提前的,引入的js文件互相调用对方的方法都是可以的。但是在模块化的时候这样好像有问题,但是我又不能确认是不是因为在加载这些模块的时候如果有依赖关系需要进行其他的处理。本人刚刚开始前端的模块化,之前没有这方面的经验。
模块的循环依赖问题。 既然a/b模块都会用到 dosomething 和 func2 那把他们俩抽取到一个公共的模块里供a/b引用就行了。 合理规划项目模块的功能是很容易避免这类问题的。
@sarike 谢谢你的回答,我已经这样改了