javascript - 我应该如何组织一个对象以尽可能地保持一切分离?

标签 javascript

我终于问了这个问题,因为我从来没有真正找到答案。如果我有一个结构如下的 javascript 对象:

var someObj = {

    "categoryA" : {
        "func1" : function(){},
        "func2" : function(){},
    },

    "categoryB" : {
        "func3" : function(){},
        "func4" : function(){},
    }

}

func4 想要调用 func2。我有什么方法可以不说 someObj.func2() 就调用它吗?在我看来这很丑陋,因为它确保应用程序不能轻易重命名并且似乎与内部功能的耦合更紧密。还是这就是它通常的组织方式并且不被视为问题?

最佳答案

您总是可以将您的对象声明折射成如下所示的内容:

var someObj = (function() {

    function func1(){}
    function func2() {}
    function func3() {}

    function func4() {
        func2();
    }

    var self = {
        "categoryA" : {
            "func1" : func1,
            "func2" : func2,
        },

        "categoryB" : {
            "func3" : func3,
            "func4" : func4,
        }
    };

    return self;
}());

通常称为“模块模式”。

关于javascript - 我应该如何组织一个对象以尽可能地保持一切分离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11074909/

相关文章:

表单重置按钮需要 Javascript

javascript - 我如何使用 JavaScript 或 jQuery 重建这个 JSON 对象

javascript - 调整浏览器大小时文本上的 CSS 省略号

Javascript 日期和 HTML

javascript - mongodb:全局将对一个ObjectID的所有引用替换为另一个ObjectID?

javascript - ajax 成功或失败之前调用函数

javascript - 为每个 id 创建一个独特的 jquery 对话框样式

javascript - annotator.js 在本地工作但不在网络服务器上工作,有什么想法吗?

javascript - 仅使用 jQuery 将 return false 添加到父链接

javascript - 如何在 TypeScript 中使用实验性装饰器和协调类型?