2011-11-18 58 views
2

我有一個JavaScript功能的JavaScript:發送參數的逗號分隔字符串的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);); 

我想用我在哪裏可以發送參數作爲一個逗號分隔的參數字符串的第一個方法去實現它。

有人可以幫我如何可以做到這一點...

謝謝!

+0

難道你不是指window.add或window ['add']? – pimvdb

回答

7

您可以使用ECMA腳本.apply(),它調用一個函數並接受一個參數數組。

window['add'].apply(null, param.split(',')); 

這樣一來,我們執行add功能,其上下文設置爲null(你也可以改變,如果你需要),並通過兩個paramters。由於我們需要Array,因此我們在前面的字符串上調用split()

所以基本上,上面的一行是一樣的

add(1,2); 

既然你在巡航能力在全球範圍內(window)該功能,我們甚至不需要它,明確寫入。

add.apply(null, param.split(',')); 

就好了。

+0

嘿,謝謝你,安迪:) –