我有以下所谓的揭示模块模式,我想使用变量调用函数b内部的函数a。我怎样才能做到这一点?
foo = function() {
a = function() {
};
b = function() {
memberName = 'a';
// Call a() using value stored in variable `memberName`.
}
return {b: b};
}();
最佳答案
问题是 a
不是成员,而是一个变量(而且它应该是本地变量!)。除非您使用黑魔法 (eval
),否则您无法通过名称动态访问它们。
您需要将其设为对象的成员,以便可以通过括号表示法访问它:
var foo = (function() {
var members = {
a: function() { }
};
function b() {
var memberName = 'a';
members[memberName].call();
}
return {b: b};
}());
关于javascript - 调用变量中指定的对象的 Javascript 成员函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23397912/