2
$(document).ready(function() {
          $.ajax({
              url: 'objects.php',
              type:'GET',
              dataType: 'json',
              success: function(response)
               var variable = [some_array];

      //how to create an variable containing json array and access this variable outside?
                }
           });
      }); alert(variable);

为什么这不起作用?我闻到一些范围问题...

谢谢你。

4

1 回答 1

0

首先,让我说在回调中更改全局变量不是要走的路。相反,您应该从回调中触发所有副作用。如果您避免回调通过全局状态相互影响,您会发现您的代码容易推理和调试。

也就是说,如果您希望两个函数“共享”一个变量,只需在两者都可以看到的地方声明它。

var x = 0; // Declaring this in an outer scope makes f1 and f2 share it.

function f1() {
    x = 1
}

function f2() {
    console.log(x)
}

f1();
f2(); // Prints '1'

造成这种行为的特性是闭包

于 2013-03-23T11:45:55.697 回答