我宁愿有一个看似微不足道的问题,但我无法找到一个有效的方法。
我有一个大约50个要调用的函数的列表,例如:
globalClient.funcA(...)
globalClient.funcB(...)
globalClient.funcC(...)
我的代码理想情况下应该动态创建函数的名称(funcA / funcB / funcC,然后继续实际调用该函数。我的方法不起作用(请注意,这些并不完全是实际的名称)功能。我只是为了简化理解而给出这些任意名称:
var functionName = 'func'.concat('A');
globalClient.functionName
第二行是出错的地方。现在JS认为functionName
本身就是函数的名称。我想要它做的是将functionName
解析为funcA
,然后调用globalClient.funcA(...)。
我已经考虑过为此实现一个开关/案例,但我确信有一个更简单的appraoch。有什么想法吗?
答案 0 :(得分:4)
您可以将括号表示法用作property accessor。
globalClient[functionName]()
答案 1 :(得分:1)
您可以使用[ ]运算符来访问属性。
var globalClient = {
funcA: function(){
console.log('funcA is called');
}
}
var functionName = 'func'.concat('A');
globalClient[functionName]();