关于Jquery范围的新手问题

关于Jquery范围的新手问题,jquery,scope,Jquery,Scope,以下示例中有关jquery作用域的快速问题: $(function(){ var test; $.get('txtfile.txt', function(txtfile) { test = txtfile.split('\n'); }); console.log(test); }); 控制台返回未定义的“test”。你能告诉我哪里出错了吗。 谢谢。$。get是异步工作的(“Ajax”中的“A”代表“异步”)。成功回调(使用function(){}construct定

以下示例中有关jquery作用域的快速问题:

$(function(){
  var test;
  $.get('txtfile.txt', function(txtfile) {
      test = txtfile.split('\n');
  });
  console.log(test);
});
控制台返回未定义的“test”。你能告诉我哪里出错了吗。
谢谢。

$。get
是异步工作的(“Ajax”中的“A”代表“异步”)。成功回调(使用
function(){}
construct定义)仅在Ajax调用完成后调用。当代码到达

console.log(test);
这还没有发生


如果您将
console.log
调用放入success回调,它将按预期工作。

jQuery没有自己的作用域概念-它只是一个Javascript库。:)它不是jQuery中的直接作用域,而是我在jQuery结构中迷失的事实……因此与$.get访问的数据有关的一切,必须在成功回电中吗?@uhandoh:是的,成功回电必须完成所有的工作。但是成功回调可以自由调用它需要的任何函数或方法。success回调与其他闭包一样,也可以访问环绕范围中的内容。