Значение Javascript потеряно во всей области видимости - PullRequest
0 голосов
/ 22 сентября 2011

Это сводило меня с ума в течение нескольких недель. У меня есть переменные данные, к которым я хотел бы получить доступ в разных частях моей программы.Например,

var data = [];

SomeNamespace.module.method(function(){
   data.push(['some data']);
});

// data is undefined here

Но, похоже, оно потеряно, возможно, что-то связанное с областью видимости.Как мне обойти это?

Заранее спасибо!

1 Ответ

7 голосов
/ 22 сентября 2011

Эта функция является обратным вызовом, поэтому данные не заполняются до тех пор, пока не будет выполнен этот обратный вызов.

Итак, это:

var data = [];    
(function(){
   data.push(['some data']);
})();
data; // ['some data']

устанавливает данные, но:

var data = [];
var func = function() {
   data.push('values'); 
}
data; // [] - empty array
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...