JavaScript匿名函數和全局變量,局部變量
<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的作用域鏈 。
外部訪問函數內部的變量是閉包實現的,函數內部的變量訪問外部的變量是作用域鏈實現的