【发布时间】:2016-04-04 13:41:37
【问题描述】:
我有一个 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[0] 和 args[1] 但这只是一个通用过程的例子,我们不知道可能存在的 args 的数量。
我也不想传递 args 数组并让函数句柄将其分解。我希望调用的最终函数尽可能正常,以免担心这些细节。
【问题讨论】:
-
您已经将数组设为
obj.args,您应该可以按照链接问题中的说明使用它。 -
仅供参考:在您的示例中,这不是有效的 JSON,并且缺少结束
} -
将代码从欺骗应用到您的示例:
fn.apply(this, obj.args) -
@epascarello 如果我们真的很挑剔,
"和'也应该全部颠倒,因为键名应该用"包围:) -
@JamesThorpe 废话,我没有看到,那不会解析。哈哈咖啡还没有开始。
标签: javascript