AJAX调用中的变量范围

Jer*_* S. 2 javascript ajax scope callback

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

var loadMask = {name:"test"};

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

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

这怎么可能?

Inv*_*con 5

这可以使用一种叫做闭包的东西.有很多资源:

这里有一些来自谷歌:

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

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