这让我疯狂了几个星期。我有一个可变数据,我想在我的程序的不同部分访问。像这样,跨范围的Javascript值丢失
var data = [];
SomeNamespace.module.method(function(){
data.push(['some data']);
});
// data is undefined here
但是,它似乎丢失了,可能与范围有关。我怎样才能解决这个问题?
在此先感谢!
这让我疯狂了几个星期。我有一个可变数据,我想在我的程序的不同部分访问。像这样,跨范围的Javascript值丢失
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
数据不应该是'undefined'那里,它应该要么有它的数据,或者仍然取决于一个空的阵列 - 当'SomeNamespace.module.method'实际运行你传入的函数。 – evan
对不起,是的,它仍然是一个空数组。 – maximus