AJAX调用中的变量范围

时间:2010-11-10 15:37:07

标签: javascript ajax callback scope

我总经常问自己的一个问题是,当在AJAX调用的函数中声明变量时,javascript如何在AJAX请求的回调函数中仍然存在引用。这是一个例子

var loadMask = {name:"test"};

form.submit({
  url: 'request.php',
  timeout : 180000,
  success: function(the_form, action_object)
  {    
    console.log(loadMask);
  }
});

尽管loadMask是在success函数之外声明的,但它仍然在内部可见(和定义)。

这怎么可能?

1 个答案:

答案 0 :(得分:5)

这可以使用名为闭包的东西。有很多资源:

以下是谷歌的一些内容:

http://www.webreference.com/programming/javascript/rg36/

http://jibbering.com/faq/notes/closures/