Javascript闭包和回调 - 变量值在回调后不会持久存在

时间:2014-03-05 10:37:04

标签: javascript callback closures

我想知道为什么变量是未定义的,如果它在回调函数中初始化。

伪代码:

var name;

//callback function:
function(givenName) {
 name = givenName;

}

alert(name) // undefined

回调函数是从传递givenName的不同模块调用的,并且在回调函数名称中定义它应该,但不在回调函数之外。我很想知道这是如何工作的以及如何解决它。任何文章或答案都非常欢迎!感谢。

1 个答案:

答案 0 :(得分:0)

当从另一个上下文调用此函数并且您想要影响实际范围中的变量时,您需要在调用此方法时传递上下文。

因此,您应该使用callapply并将所需的上下文作为第一个参数传递。

希望这有帮助