我不确定如何标题,或者这是否有意义。但是,我们走了。
我有一个包含对象的文件A.我希望能够创建一个模块化的命令系统,这意味着我需要文件B来存放命令。我需要能够确定在文件A中处理哪个命令。文件b需要执行代码,但仍然使用相同的对象。
我该如何做到这一点?
档案A:
var obj = { functions... }
command.process(command)
档案B:
var commands = {
name: 'help',
run: function(cmd) {
obj.sendMessage("help is on the way!")
}
}
答案 0 :(得分:0)
我认为您要问的是如何在两个节点模块之间建立循环依赖关系。这样的依赖结构可能是bad code smell,您应该尽量避免它,但您仍然可以这样做。以下是基于代码的示例:
a.js
const b = require('./b');
Object.assign(module.exports, {
sendMessage: function(message) {
console.log(message);
}
});
b.commands[0].run();
b.js
const a = require('./a');
module.exports.commands = [{
name: 'help',
run: function() {
a.sendMessage('help is on the way!');
}
}]
输出:
node a.js
help is on the way!