动态调用Javascript函数 - 返回undefined

时间:2014-03-16 21:55:39

标签: javascript jsfiddle

我尝试使用此代码动态调用函数:

function myFn() {
        console.log("called");
}
var callbackName = "myFn";
console.log(window[callbackName]);

http://jsfiddle.net/Pr7B2/

然而它说window[callbackName]未定义。为什么以及如何动态调用它?感谢

1 个答案:

答案 0 :(得分:6)

JSFiddle将JavaScript包装在函数中,因此myFn位于另一个函数的本地范围内。

使用:

window.myFn = function () {
  console.log("called");
}
var callbackName = "myFn";
console.log(window[callbackName]());

这样您就可以明确定义名为myFn的全局函数。

另一个选项(如@Barmar所说)是使用JSFiddle的选项“No wrap”。

Demo