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?

posted @ 2013-08-02 12:15  RightDear  阅读(402)  评论(0编辑  收藏  举报