js作用域的一个小例子
1 var foo = function(){ 2 var a =3,b=5; 3 var bar = function(){ 4 var b=7,c=11; 5 6 alert("111a="+a+";b="+b+";c="+c); //第二个输出,此时a=3;b=7;c=11 7 8 a += b + c; 9 alert("222a="+a+';b='+b+";c="+c); //第三个输出,此时a=21;b=7;c=11 10 }; 11 12 alert("333a="+a+';b='+b+";c="); //第一个输出,此时a=3;b=5;c没有定义 13 14 bar(); 15 alert("444a="+a+';b='+b+";c="); //第四个输出,此时a=21;b=5;c没有定义 16 }; 17 foo(); 18 exit();
注意执行顺序,调用foo()
执行第1,2行--->12行--> 14行--->3.....10行--->15行
第四个输出里 b为什么等于5?