我终于问了这个问题,因为我从来没有真正找到答案。如果我有一个结构如下的 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/