繁体   English   中英

在javascript(jquery)调用中声明匿名函数时,闭包如何工作?

[英]how does closure work when declaring anonymous functions in javascript(jquery) calls?

在此功能中:

var x = {
  getStuff : function(){
     var i = 0;
     $.getJSON('/url.json', {}, function(data){
        $.each(data, function(key,val){ 
          alert(i);
        });            
     });
  });
}

因此,我是否正确理解为2个jquery调用(.getJSON,.each)声明的匿名函数由于关闭而都可以访问父函数(getStuff)?

这是否意味着在该位置声明了匿名函数,该匿名函数位于其父级的作用域链中,因此它们可以访问父级变量?

匿名函数无法使用该名称访问“ getStuff()”本身,除非通过变量“ x”访问。 他们确实可以在实例化匿名函数的包含函数的本地作用域实例化中访问变量“ i”,或更正确地访问变量“ i”。

每次调用“ getStuff()”都会创建一个新的本地范围,每个范围都有自己的“ i”和自己的匿名函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM