变量式申明函数中函数名作用域
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
加支付宝好友偷能量挖...
原创文章,转载请注明出处:变量式申明函数中函数名作用域