gpt4 book ai didi

javascript - 如何在同一命名空间内从函数 B 调用函数 A?

转载 作者:数据小太阳 更新时间:2023-10-29 04:26:21 26 4
gpt4 key购买 nike

假设我有命名空间,

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。但我很好奇这里的最佳做法是什么。

最佳答案

我建议将“命名空间”放在函数范围内。所有未明确公开的内容自然都是私有(private)的:

var Namespace = (function() {
var self = {};

// Private
var A = function() {
...
};

// Public
self.B = function() {
A();
}

return self;
}());

Namespace.B(); // Works
Namespace.A(); // Doesn't work

关于javascript - 如何在同一命名空间内从函数 B 调用函数 A?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17790982/

26 4 0
文章推荐: javascript - jQuery 滚动到元素底部而不是顶部
文章推荐: c# - 为什么我不能从 List 转换为 List