2014-05-20 17 views
0

儘管這是在幾個堆棧溢出答案中批准的方法,以及迄今爲止我已閱讀的兩個教程,但我無法設法通過動態生成名稱而無法獲取JavaScript中的方法控制檯錯誤:動態生成方法名稱導致未捕獲類型錯誤

Uncaught TypeError: undefined is not a function 

如何動態調用方法?

我當前的代碼,從而未能在這兩個我的Rails應用程序和的jsfiddle(你可以看到小提琴here

var foo = "hello_"; 
var bar = "world"; 
var function_name = "say_" + foo + bar; 

window[function_name](" World!"); 

function say_hello_world(the_word) 
{ 
    alert("Hello " + the_word); 
} 

在此先感謝。

+5

這是小提琴http://jsbin.com/qoyuh/1/edit – elclanrs

+0

您可以使用eval,但可能有安全問題 – fmodos

+3

請參閱[簡單示例在JSFiddle上不起作用](http:// stackoverflow .com/questions/5431351/simple-example-doesnt-work-on-jsfiddle)...如果你正確地配置了jsFiddle,它就可以工作。你去了:http://jsfiddle.net/PybGC/5/ –

回答

0

在解析了評論中的建議並閱讀了他們帶給我的文章之後,它看起來像JSFiddle和Rails都聲明函數是onload的本地函數。顯式聲明該函數爲全局意味着這現在可以在我的原始小提琴和我的Rails應用程序。

var foo = "hello_"; 
var bar = "world"; 
var function_name = "say_" + foo + bar; 

window.say_hello_world = function(word) 
{ 
    alert("Hello " + word + "!"); 
} 

window[function_name]("world"); 

感謝您的幫助,每個人。

相關問題