Javascript从内部调用嵌套函数

时间:2015-06-12 18:28:20

标签: javascript function methods nested closures

如果我运行以下内容......

function outer(){
    function inner(){
    }

    inner();
}

内部将按预期第一次运行。

如果我尝试运行以下内容......

function outer(){
    function inner(){
        inner();
    }

    inner();
}

inner将按预期第一次运行,但随后在任何后续尝试失败,返回错误:ReferenceError:inner未定义

如果我将该函数公开给全局命名空间,它将再次起作用......

function outer(){
    function inner(){
        inner();
    }

    window.inner = inner;
    inner();
}

有没有办法从内部引用嵌套函数而不将其添加到全局命名空间?

1 个答案:

答案 0 :(得分:4)

您可以将该函数分配给执行范围内的局部变量

function outer() {
    var inner;

    inner = function () {
        inner();
    }
    inner();
}