<script type="text/javascript" >
(function(){
i=10;
function aa(){
i=2;
}
aa();
alert(i);
})();
(function(){
i=10;
function aa(){
var i=2;
}
aa();
alert(i);
})();
</script>
在同一个js文件中,使用匿名函数,可以定义方法名相同的方法。
在函数里面没有var声明的变量会直接影响全局的变量,是因为在js中,如果某个变量没有var声明,
会自动到上一层作用域中去找这个变量的声明语句,如果找到,就使用,如果没有找到,继续向上查找,
一直查找到全局作用域为止。如果全局中仍然没有这个变量的声明语句,那么会自动在全局作用域进行声明,
这个就是js的作用域链 。
外部访问函数内部的变量是闭包实现的,函数内部的变量访问外部的变量是作用域链实现的