我有多个不同的文件如下:
index.js
utils.js
ClassA/
index.js
base.js
utils包含许多在任何地方使用的实用程序函数。 ClassA / index.js包含ClassA的构造函数以及需要base.js,然后导出ClassA。 Base.js导出ClassA的原型方法。这基本上就是它们的样子:
//ClassA/index.js
function ClassA () {
//constructor stuff
}
ClassA.prototype.constructor = ClassA;
require('./base')(ClassA);
module.exports = ClassA;
//ClassA/base.js
module.exports = ClassA => {
ClassA.prototype.aMethod = function () {
log('hello');
}
//utils.js
module.exports = {
log : function (logText) {
//dostuff
}
}
所以我的问题是我无法从ClassA/base.js
中的方法中访问日志功能。如果我在文件顶部设置const log = require('../utils').log
,则不起作用。如果我在导出中但在方法定义之外放置相同的代码行,它也不起作用,但是如果我将它放在方法本身中它会起作用(正如预期的那样,但这意味着复制任何需要的语句)它需要的方法)。有没有办法使用这种杂乱和重复的路线?
答案 0 :(得分:0)
这是循环依赖的问题。我将'log'更改为ClassA的方法,这解决了这个问题。感谢Francois P.指出我正确的方向。