打破json作为函数参数并发送到函数

时间:2015-12-30 15:03:51

标签: javascript

我有一个JSON格式的字符串,它告诉我有关要调用的函数及其参数的信息,并且我试图弄清楚如何将这些参数发送到函数。

var obj = JSON.parse("{'jFunc':'UpdateStat', 'args':['health','100']}")

var fn = window[obj.jFunc];
if(typeof fn == 'function'){
  fn();  // how do I pass the args correctly here, in order
}

function UpdateStat(statName, statValue){
}

请注意,可能存在任意数量的args。在这个例子中,我知道我可以传递args [0]和args [1],但这只是一个通用过程的例子,我们不知道可能存在的args数量。

我也不想传递args数组并让函数处理它。我希望被调用的最终函数尽可能正常,以免担心这些细节。

1 个答案:

答案 0 :(得分:2)

您可以使用Function.prototype.apply():

window[obj.jFunc].apply(this, obj.args);

请参阅文档here