首页 > 代码库 > JavaScript 作用域和作用域链
JavaScript 作用域和作用域链
作用域
作用域指的是变量的适用范围
全局作用域
不在任何函数内定义的变量就具有全局作用域
局部作用域
在函数内部定义的变量具有局部作用域
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 作用域和作用域链
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。