Javascript 将json分解为函数参数并发送到函数

Javascript 将json分解为函数参数并发送到函数,javascript,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 } func

我有一个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){
}
请注意,可以有任意数量的arg。在这个例子中,我知道我可以传递args[0]和args[1],但这只是一个普通流程的例子,我们不知道可能存在的args的数量


我也不想传递args数组,让函数句柄将其破坏。我希望调用的最终函数尽可能正常,以便不必担心这些细节。

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

window[obj.jFunc].apply(这是obj.args)


参见文档

您已经将数组设置为
obj.args
,您应该能够使用链接问题中所述的数组。仅供参考:在您的示例中,这不是有效的JSON,它缺少结尾
}
将dupe中的代码应用到您的示例:
fn.apply(这是obj.args)
@epascarello如果我们真的很挑剔,那么
可能也应该颠倒,因为键名应该被
:)@JamesThorpe废话包围,我没有看到,这不会解析。哈哈,咖啡还没有起作用。