尽管这是几个堆栈溢出答案中已批准的方法,以及我到目前为止阅读的两个教程,但我无法通过动态生成名称来调用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);
}
提前致谢。
答案 0 :(得分:0)
在解析了评论中的建议并阅读了他们引导我的文章后,看起来JSFiddle和Rails都将该函数声明为onload的本地函数。明确地将该函数声明为全局意味着现在可以在我的原始Fiddle和我的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");
感谢大家的帮助。