Javascript 从自身内部调用嵌套函数

Javascript Calling a nested function from within itself

如果我运行以下...

function outer(){
    function inner(){
    }

    inner();
}

内心会运行如期而至


如果我然后尝试 运行 以下...

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

    inner();
}

inner 将再次 运行 第一次如预期的那样,但随后在任何后续尝试中都会失败,返回错误:ReferenceError: inner is not defined


如果我将函数暴露给全局命名空间,它将再次工作...

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

    window.inner = inner;
    inner();
}

有没有办法在不将嵌套函数添加到全局命名空间的情况下从其自身引用嵌套函数?

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

function outer() {
    var inner;

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