变量式申明函数中函数名作用域

  javascript以变量式申明函数时,如果函数有函数名称,这个函数名称作用域范围将会在此函数体有效,作为私有变量存在,非全局变量。

 DEMO

<script>
    var b = function c() {
        a = 1;
        b = 2;
        c = 3;
    }
    b();
    console.log(a);
    console.log(b);
    console.log(c);//报错
</script>

变量式申明函数中函数名作用域

  解析:

函数内的a,b,c没有用var声明,这样其中的a,b是全局变量。c下面说明。
1,a不用多说。
2,全局变量b的值原本是一个函数的引用地址,执行函数后全局变量b重新赋值为2
3,当 function c() {} 以表达式形式出现时,其中的函数名(c)会作为这个函数内的局部变量,而不是全局变量,这样在函数内 c=3 就是对局部变量c重新赋值。所以并没有全局变量c

 

加支付宝好友偷能量挖...


原创文章,转载请注明出处:变量式申明函数中函数名作用域

评论(0)Web开发网
阅读(102)喜欢(0)JavaScript/Ajax开发技巧