从异步函数设置全局变量

时间:2013-03-12 16:06:34

标签: javascript jquery

您好我有以下内容。

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 ;
  });
});

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

2 个答案:

答案 0 :(得分:3)

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

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

然后将全局内容放在那里

App.g = [];

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

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

答案 1 :(得分:0)

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

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

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

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

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

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