码迷,mamicode.com
首页 > 编程语言 > 详细

JavaScript 作用域和作用域链

时间:2017-06-11 13:40:03      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:blog   onclick   加载   标题   get   element   name   循环   cli   

作用域

作用域指的是变量的适用范围 

 

全局作用域

不在任何函数内定义的变量就具有全局作用域

 

局部作用域

在函数内部定义的变量具有局部作用域

var bo=54
function eb(){
  alert(bo)
}
eb()

解:变量bo就处于全局作用域中,能被eb()所访问

 

作用域链

每个变量都有作用域,当你尝试访问一个变量的时候,它会从当前作用域开始向上查找,直到全局作用域,这个查找的路径就可以说是作用域链

<!DOCTYPE html>
<html>
<body>
<script type="text/javascript">
window.onload=function(){
  for(var i=1;i<4;i++){
    document.getElementsByTagName("h"+i)[0].onclick=function(){
      alert(i)
    }
  }
}
</script>
<h1>标题一</h1>
<h2>标题二</h2>
<h3>标题三</h3>
</body>
</html>

解:这个是一个for循环取i的问题,那么进行分析,当页面加载的时候进行for循环,给h1,h2,h3分别绑定了一个点击事件,当点击h2标签时,执行匿名函数,匿名函数尝试访问变量i,在当前作用域查找i未果,向上一级作用域访问,找到了变量i,变量i因为for循环,i=3,所以alert(3)。 这就是作用域链的作用

 

JavaScript 作用域和作用域链

标签:blog   onclick   加载   标题   get   element   name   循环   cli   

原文地址:http://www.cnblogs.com/xianbin1996/p/6984320.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!