多次阅读此问题及其接受的答案How to execute a JavaScript function when I have its name as a string
我试着靠自己做。但我认为今天我不幸的一天,我曾经尝试过的是没有用的。我已经为我的测试创建了一个小提琴
//the function I want to invoke by String
function CheckMe() {
return "haha";
}
//the function that will search for the function and invoke it
function InvokeChecking(func2check) {
var fn = func2check;
if (typeof fn === 'function') {
return = fn(); //invoke the function
}
}
//the event listener ( ´ ▽ ` )ノ
$("#checker").click(function () {
alert("event is working");
alert(InvokeChecking("CheckMe"));
});
http://jsfiddle.net/laupkram/qKHpu/2/
我想要做的是通过使用string调用我声明的函数并获取其返回值。所以我使用(fn==='function')
参数跟踪了我在SO中看到的内容。但似乎对我不起作用。
我哪里出错?
注意:我已经在firebug中检查了它并且我的功能存在...我是否遇到了范围问题?还是什么?
答案 0 :(得分:3)
按照您提到的相关答案,按姓名调用的函数由以下人员调用:
var function_name = 'alert';
window[function_name]('hello world');
答案 1 :(得分:1)
你需要传入函数的文字名称,不带引号("
),否则它将被视为文字字符串,这是没有意义的
alert(InvokeChecking(CheckMe)); // instead of alert(InvokeChecking("CheckMe"));
答案 2 :(得分:0)