在此功能中:
var x = {
getStuff : function(){
var i = 0;
$.getJSON('/url.json', {}, function(data){
$.each(data, function(key,val){
alert(i);
});
});
});
}
所以我正确理解为2个jquery调用(.getJSON,.each)声明的匿名函数由于关闭而都可以访问父函数(getStuff)吗?
这是否意味着在该位置声明的匿名函数位于其父级的范围链内,以便它们可以访问父变量?
答案 0 :(得分:0)
除了通过变量“x”之外,匿名函数无法通过该名称访问“getStuff()”本身。他们做可以访问变量“i”,或更正确地访问包含函数的本地作用域的实例化中的变量“i”,用于实例化匿名函数的调用。
每次调用“getStuff()”都会创建一个新的本地范围,每个范围都有自己的“i”和它自己的匿名函数。