在JavaScript中,我有一個這樣的字符串:如何執行包含函數名稱和參數的字符串?
"doSomething('param1','param2')"
而且我要執行它。我知道,我可以正常使用
window['doSomething']('param1', 'param2');
但是,只有當我的函數名稱從參數是不同的作品。在我的情況下,他們已經合併。我認爲我可以使用eval(),但共識似乎是應該避免的。有另一種方法嗎?
編輯: 解答更多信息的要求:我使用這個字符串是這樣的:
<a id="YesButton" onclick="closeModalView_Yes("doSomething('param1','param2')")">
凡closeModalView_Yes將關閉該模式是/否窗口,然後執行給定的功能,雖然有時我可能會通過它doSomethingElse(param1),它只需要一個參數。
如果您知道字符串中的內容,並且不會感到驚訝,只需使用eval即可。我的意思是,你永遠不能允許用戶分配字符串的值。 – 2013-07-31 19:47:16
你是如何獲得該字符串的,爲什麼?難道你不能讓它成爲一個數組嗎?['doSomething','param1''param2']'? – Bergi
爲什麼不將回調傳遞給'closeModalView_Yes'呢?就像'closeModalView_Yes(function(){doSomething('param1','param2');})'。 –