跨作用域丢失Javascript值

跨作用域丢失Javascript值,javascript,scope,Javascript,Scope,这几周来一直让我发疯。我有一个可变的数据,我想在我的程序的不同部分访问它。这样, var data = []; SomeNamespace.module.method(function(){ data.push(['some data']); }); // data is undefined here 但是,它似乎丢失了,可能与范围有关。我怎样才能避开这件事 提前谢谢 该函数是一个回调函数,因此在运行该回调函数之前不会填充数据 因此: var data = []; (func

这几周来一直让我发疯。我有一个可变的数据,我想在我的程序的不同部分访问它。这样,

var data = [];

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

// data is undefined here
但是,它似乎丢失了,可能与范围有关。我怎样才能避开这件事


提前谢谢

该函数是一个回调函数,因此在运行该回调函数之前不会填充数据

因此:

var data = [];    
(function(){
   data.push(['some data']);
})();
data; // ['some data']
设置数据,但:

var data = [];
var func = function() {
   data.push('values'); 
}
data; // [] - empty array

数据不应该是未定义的,它应该有自己的数据,或者仍然是一个空数组-这取决于SomeNamespace.module.method实际运行您传入的函数的时间。对不起,是的,它仍然是一个空数组。不,即使将其放入匿名自执行函数中,它肯定仍然返回[]。嗯,它不应该。你能发布相关的代码吗,因为有更深层次的事情正在发生;回调函数是非同步的,并且在我期望的时候也没有赋值。谢谢你的回答!