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