Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 具有显示模块模式的Nodejs循环依赖_Javascript_Node.js_Revealing Module Pattern_Cyclic Dependency - Fatal编程技术网

Javascript 具有显示模块模式的Nodejs循环依赖

Javascript 具有显示模块模式的Nodejs循环依赖,javascript,node.js,revealing-module-pattern,cyclic-dependency,Javascript,Node.js,Revealing Module Pattern,Cyclic Dependency,我最近遇到了这个问题,正在寻找一个好的解决方案。 下面是基本设置 在c.js中,a是一个空对象。目前,我通过将var a=require('./a.js')放在需要访问模块a的方法的函数(cFunction)中来解决这个问题。但这是最好的方法吗 谢谢, 大卫 main.js var a = require('./a.js'); a、 js b、 js c、 js 你为什么要用iIFE?模块已经有了自己的作用域。可能与我已经读过的和其他许多模块一样,找不到解决方案为什么要使用IIFEs?模块已

我最近遇到了这个问题,正在寻找一个好的解决方案。 下面是基本设置

在c.js中,a是一个空对象。目前,我通过将var a=require('./a.js')放在需要访问模块a的方法的函数(cFunction)中来解决这个问题。但这是最好的方法吗

谢谢, 大卫


main.js

var a = require('./a.js');
a、 js

b、 js

c、 js


你为什么要用iIFE?模块已经有了自己的作用域。可能与我已经读过的和其他许多模块一样,找不到解决方案为什么要使用IIFEs?模块已经有了自己的作用域。可能与我已经读到的和其他许多模块的作用域重复,但找不到解决方案
module.exports = (function() {
    var b = require('./b.js');

    function aFunction() {
        console.log("aFunction");
    }

    return {
        aFunction: aFunction
    };

})();
module.exports = (function(){
    var c = require('./c.js');

    function bFunction(){
        console.log('bFunction');
    }

    return {
        bFunction: bFunction
    };

})();
module.exports = (function(){
    var a = require('./a.js');
    console.log(a); //empty object

    function cFunction(){
        a.aFunction(); //undefined
        console.log('cFunction');
    }

    return {
        cFunction: cFunction
    };

})();