<script type="text/javascript"> function f(){

var a=5;

function(){

window.alert(a);
}

}

f();

</script>
JavaScript中,函数的局部变量(a)不是在整个函数中都有意义吗?为什么在匿名函数中不能读取a的值呢?菜鸟一枚,求指导

解决方案 »

  1.   

    f(),执行函数f
    但你函数内部就只定义了一个局部变量a,和一个匿名方法
    首先,这个a在你匿名函数内部是可以获取到的,但主要的是你这个匿名函数并没有执行,你若是想看效果,有两个办法,但原理都相同,就是使这个匿名函数自执行
    //1:这样的话就是将后面匿名函数立即执行,并将其返回值赋于b
    var b=function(){
            alert(a);
    }();
    //对效果进一步理解,你使用以下方法就应该知道了
    var b=function(){
            return "我是b的返回值";
    }();
        alert(b);//第2种就是匿名函数本身自执行
    (function(){
            alert(a);
    })();