在javascript中动态调用函数

时间:2016-10-24 07:00:25

标签: javascript function

我宁愿有一个看似微不足道的问题,但我无法找到一个有效的方法。

我有一个大约50个要调用的函数的列表,例如:

globalClient.funcA(...)
globalClient.funcB(...)
globalClient.funcC(...)

我的代码理想情况下应该动态创建函数的名称(funcA / funcB / funcC,然后继续实际调用该函数。我的方法不起作用(请注意,这些并不完全是实际的名称)功能。我只是为了简化理解而给出这些任意名称:

var functionName = 'func'.concat('A');
globalClient.functionName

第二行是出错的地方。现在JS认为functionName本身就是函数的名称。我想要它做的是将functionName解析为funcA,然后调用globalClient.funcA(...)。

我已经考虑过为此实现一个开关/案例,但我确信有一个更简单的appraoch。有什么想法吗?

2 个答案:

答案 0 :(得分:4)

您可以将括号表示法用作property accessor

globalClient[functionName]()

答案 1 :(得分:1)

您可以使用[ ]运算符来访问属性。



var globalClient = {
  funcA: function(){
    console.log('funcA is called');
  }
}

var functionName = 'func'.concat('A');
globalClient[functionName]();