【发布时间】:2015-05-22 05:41:02
【问题描述】:
有人可以为我澄清这一点吗?
我最喜欢的两个 JavaScript 特性是闭包和函数是第一类对象这一事实。
如果我想在回调函数中利用闭包,那么该函数必须始终是内部函数。例如:
doNested();
function doNested() {
var message='Hello';
window.setTimeout(inner, 3000);
function inner() {
alert(message);
}
}
我无法将参数传递给外部回调函数。例如:
doSeparated();
function doSeparated() {
var message='Goodbye';
window.setTimeout(outer,3000);
}
function outer() {
alert(message);
}
这当然行不通。
问题是,有没有办法像这样将内部变量传递给外部函数,而不是将它们添加到参数列表中?
谢谢
【问题讨论】:
-
将数据作为参数传递给函数是很常见的。
标签: javascript callback closures