变量中的函数名称

rel*_*sis 2 javascript jquery

我试图调用一个将其名称存储在变量中的函数时遇到问题.我在stackOverflow上找到了一些关于我的问题的问题但是,我似乎无法解决我的问题.从我的理解,使用

window[functionName]();
Run Code Online (Sandbox Code Playgroud)

应该调用我想要的功能.我创建了一个jsfiddle,希望能澄清我的问题.问题是,我没有调用我的函数,而是出现错误:

window [functionName]不是函数

我相信有一些我想念的小东西,但经过很长一段时间试图找出问题所在,我决定在这里尝试一下.

Aru*_*hny 6

因为您的函数是在onload处理程序中添加的,所以它们是gloabl作用域中不可用的方法的本地函数.

在左侧面板的第二个下拉列表中选择no-wrap header/body,然后在dom ready处理程序中添加jQuery处理程序.

function one() {
    alert('one called');
}

function two() {
    alert('two called');
}

function three() {
    alert('three called');
}

jQuery(function () {
    jQuery("button").bind("click", function () {
        var funcName = "one";
        window[funcName]();
        //alert('here');
    });
})
Run Code Online (Sandbox Code Playgroud)

演示:小提琴

window.onload = function(){}默认情况下,jsfiddle在处理程序中添加脚本,因此您声明的任何函数/变量将在该函数作用域的本地,并且在全局作用域(窗口)中不可用