内部匿名函数如何具有外部函数的范围?

时间:2013-12-05 13:03:29

标签: javascript

在下面显示的脚本中

$(function(){
    var outerValue="OuterValue";
    $('#btnScope').click(function(){
        alert(outerValue);
    });
});

外部函数(即$())在页面加载时执行。此时,click事件将绑定到匿名函数(警报)。此函数使用outerValue的值,该值在完成就绪($())函数后可能已丢失范围。这怎么可能?我怎么知道变量的范围?

解释器如何定义其范围?

1 个答案:

答案 0 :(得分:3)

外部范围不丢失。您描述的范围是相当准确的。

变量的范围大致是它定义的位置(var是)。任何内部范围都可以访问其外部范围内的任何内容。只有功能有范围;不是ifforwhileswitch