在下面显示的脚本中
$(function(){
var outerValue="OuterValue";
$('#btnScope').click(function(){
alert(outerValue);
});
});
外部函数(即$()
)在页面加载时执行。此时,click事件将绑定到匿名函数(警报)。此函数使用outerValue
的值,该值在完成就绪($()
)函数后可能已丢失范围。这怎么可能?我怎么知道变量的范围?
解释器如何定义其范围?
答案 0 :(得分:3)
外部范围不丢失。您描述的范围是相当准确的。
变量的范围大致是它定义的位置(var
是)。任何内部范围都可以访问其外部范围内的任何内容。只有功能有范围;不是if
,for
,while
或switch
。