跨范围的Javascript值丢失

max*_*mus 0 javascript scope

这让我疯了几个星期.我有一个可变数据,我想在我的程序的不同部分访问.像这样,

var data = [];

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

// data is undefined here
Run Code Online (Sandbox Code Playgroud)

但是,它似乎丢失了,可能与范围有关.我怎么能绕过这个?

提前致谢!

Joe*_*Joe 7

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

所以这:

var data = [];    
(function(){
   data.push(['some data']);
})();
data; // ['some data']
Run Code Online (Sandbox Code Playgroud)

设置数据,但是:

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