跨范围的Javascript值丢失

时间:2011-09-22 17:21:29

标签: javascript scope

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

var data = [];

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

// data is undefined here

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

提前致谢!

1 个答案:

答案 0 :(得分:7)

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

所以这个:

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

设置数据,但是:

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