如何在 JavaScript 中从另一个外部函数访问嵌套的内部函数
How do you access an nested inner function from another outer function in JavaScript?
请看下面的JavaScript代码片段。这与javascript中的函数范围和提升有关。我不能调用 window.innermost(),因为它未定义,因为它不在范围内。
除了将其附加到窗口对象之外,任何人都知道另一种方法。在这种情况下,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
设置为变量,这是在函数中定义函数的另一种方法。
相关文章:
- 访问函数外部的变量
- 从嵌套函数访问函数属性
- 访问函数对象的上下文属性|如何
- jQuery 无法使用 AJAX 调用访问函数内部的函数参数
- 访问函数中的函数名称
- 访问函数'的属性
- 访问函数内部的Polymer方法
- 从另一个文件访问函数的返回值
- 如何从AngularJS外部访问函数
- 如何在 JavaScript 中访问函数中的其他属性值作为对象属性值
- 从require()'d文件访问函数
- 如何访问函数中的变量
- JavaScript 访问函数构造函数中的“this”
- 跨不同作用域访问函数
- 访问函数内部的变量
- jQuery插件+AMD=如何访问函数
- 如何在javascript中访问函数内部的相同变量名
- 可以'无论我做什么,都无法访问函数外的数组
- 如何从module.exports访问函数
- 无法't访问函数中的对象