Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.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中的模块模式_Javascript - Fatal编程技术网

这是Javascript中的模块模式

这是Javascript中的模块模式,javascript,Javascript,我有一个具有常用函数的小库。它的结构如下: var $MY_APP = (function() { return { GROUP1: { method1 : function(){ console.log("Test"); }, method2 : function(){} }, GROUP2: { method1 : function(){ },

我有一个具有常用函数的小库。它的结构如下:

var $MY_APP = (function() {

    return {
        GROUP1: {
            method1 : function(){ console.log("Test"); },
            method2 : function(){}
        },
        GROUP2: {
            method1 : function(){ },
            method2 : function(){}
        },
        GROUPX: {
            method1 : function(){ $MY_APP.GROUP1.method1(); },
            method2 : function(){}
        },
    }

})();
是否可以从GROUPX的任何方法调用另一个组方法,而不执行示例中的操作

$MY_APP.utils.GROUP1.method1();

在这种情况下你能抓住这个吗?有可能吗?

您是否考虑过使用完整的模块/加载系统,例如?这可能会很有帮助,尤其是如果您获得更多的组,或者将它们拆分到多个文件中

要获得现在可以使用的版本,只需使用中间变量。在return语句中,不要一次声明所有模块,而是更早地声明它们并将它们分配给应用程序中的变量。这使得它们可以更简单地相互引用,您可以稍后将它们全部返回到一个组中

例如:

var message=$(“#message”);
var$MY_APP=(函数(){
变量组1={
方法1:函数(){
消息文本(“测试”);
},
方法2:函数(){}
};
变量组2={
方法1:函数(){},
方法2:函数(){}
};
var GROUPX={
方法1:函数(){
组1.method1();
},
方法2:函数(){}
};
返回{
第一组:第一组,
第二组:第二组,
GROUPX:GROUPX
}
})();
$MY_APP.GROUP1.method1()