область видимости в вызовах AJAX - PullRequest
2 голосов
/ 10 ноября 2010

один вопрос, который я всегда задаю себе, - как это возможно, что javascript все еще имеет ссылку в функции обратного вызова запроса AJAX, когда переменная была объявлена ​​в функции, которая вызывает вызов AJAX. Вот пример

var loadMask = {name:"test"};

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

несмотря на то, что loadMask был объявлен вне функции успеха, он все еще видим (и определен) внутри.

Как это возможно?

1 Ответ

5 голосов
/ 10 ноября 2010

Это возможно, используя то, что называется замыкания . Для этого есть много ресурсов:

Вот несколько из Google:

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

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

...