如何从 JavaScript 中的另一个外部函数访问嵌套的内部函数?

How do you access an nested inner function from another outer function in JavaScript?

请查看以下 JavaScript 代码片段。这与 javascript 中的函数作用域和提升有关。我无法调用 window.innermost(),因为它未定义,因为它不在范围内。

除了将其附加到 windows 对象之外,任何人都知道另一种方法。 Windows 在这种情况下对象仍然不起作用。

function outer(){
    function callback() { 
        window.innermost = function() {
            alert("hello from inner most")
        }
    }
}

(function caller() {
     window.innermost();  // this is undefined
}());

您必须同时调用外部和回调:

function outer(){
    var callback = function() { 
        window.innermost = function() {
            alert("hello from inner most")
        }
    }
    callback(); // Call Callback
}
outer(); // Call outer

(function caller() {
     window.innermost();  // should work
}());

如果这两个函数都在你运行匿名函数之前被调用,那么window.innermost 不会被定义(如果你愿意,也可以是未定义的)。

此外,请注意我将 callback 设置为变量,这是在函数内定义函数的另一种方法。