java学习

java学习

 

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的作用域链 。
外部访问函数内部的变量是闭包实现的,函数内部的变量访问外部的变量是作用域链实现的

posted on 2016-04-29 16:29 杨军威 阅读(763) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

常用链接

留言簿

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜