爲了簡便起見,我已經包括了一個腳本,其名稱動態地調用一個函數:動態命名和執行JavaScript函數體
var foo = "hello";
var bar = "world";
var function_name = "say_" + foo + bar;
// Since its name is being dynamically generated, always ensure your function actually exists
if (typeof(window[function_name]) === "function")
{
window[function_name](" World!");
}
else
{
throw("Error. Function " + function_name + " does not exist.");
}
function say_helloworld(the_word)
{
alert("Hello " + the_word);
}
但功能say_helloworld
的代碼寫在靜態的時尚。我想這樣的:
var function_implementation = 'function say_'+foo+bar+
'(the_world){alert("Hello " + the_world);}';
eval(function_implementation);
但沒有使用eval()。還有一種更醜陋的方法:做一個AJAX調用來獲取函數。
你能看到更好的方法嗎?
優秀的答案,謝謝! – 2010-07-29 12:27:19