我在 javascript 中有一个函数
function add(v1,v2){
var add=v1+v2;
}
现在我调用这个函数如下 -
write.out(var param="1,2";);
write.out(window[add](param););
使用上面的调用,它不起作用。它所做的是将完整的字符串“1,2”作为函数的第一个参数 (v1) 的值。
如果我按以下方式调用该函数,它会工作 -
write.out(var param1="1";);
write.out(var param2="2";);
write.out(window[add](param1,param2););
我想使用第一种方式实现它,我可以将参数作为逗号分隔的参数字符串发送。
谁能帮我解决这个问题...
谢谢!!!
最佳答案
您可以使用 ECMAscripts .apply()
,它调用函数并接受参数数组。
window['add'].apply(null, param.split(','));
这样,我们执行 add
函数,将其上下文设置为 null
(如果需要,您也可以更改它)并传入两个参数。因为我们需要一个Array
,所以我们之前在字符串上调用了split()
。
所以基本上,上面的行是一样的
add(1,2);
由于您在全局上下文 (window
) 中拥有该函数,我们甚至不需要明确地编写它。
add.apply(null, param.split(','));
会没事的。
关于JavaScript:将逗号分隔的参数字符串发送到 JavaScript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8180168/