如何从 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
设置为变量,这是在函数内定义函数的另一种方法。
请查看以下 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
设置为变量,这是在函数内定义函数的另一种方法。