1

嗨,我有以下内容。

var g = new Array() ; 

$.getJSON(google, function(data) {
  var i = 0 ; 
  $.each(data.items, function() {
    var obj = new res(i, this.title, this.snippet, this.formattedUrl, 0) ; 
    g.push(obj) ; 
    i=i+1 ;
  });
});

我需要能够访问异步函数之外的数组。

4

2 回答 2

3

严格回答有关如何设置全局的部分,一种常见的方法是为您的应用创建命名空间,例如

window.App = {}; // or just App = {};

然后把全球的东西放在那里

App.g = [];

现在您可以从任何地方访问您的命名空间。

请注意,您仍然需要注意何时可能有修改全局变量的未完成请求。

于 2013-03-12T16:09:03.053 回答
1

您可以选择使用.data()比全局变量更简单的。

它的工作方式是你设置这样的元素:

$('body').data('g', mydata);

任何地方,并像这样检索它:

$('body').data('g');

当然,它可以在任何元素上,而不仅仅是body.

于 2013-03-12T16:09:53.183 回答