假设我有命名空间,
var Namespace = {
A : function() {
alert('Hello!');
},
B : function() {
// Call A() from here, do other stuff
}
}
在这个命名空间中,我打算让 A 成为 B 的辅助函数。也就是说,永远不会在命名空间之外调用 A()。它只会被命名空间内的函数调用。
解决命名空间中本地/辅助函数问题的最佳方法是什么?在我看来,有两种可能:
// Method #1
var Namespace = {
A: function() {
alert('Method #1');
},
B : function() {
Namespace.A();
}
}
Namespace.B();
// Method #2
function Namespace2() {
var A = function() {
alert('Method #2');
};
this.B = function() {
A();
}
}
var ns2 = new Namespace2();
ns2.B();
在第一种方法中,在命名空间内的每个函数中(重复)键入 Namespace.A() 既丑陋又尴尬。这使我更喜欢方法#2。但我很好奇这里的最佳做法是什么。