簡體   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