JS---作用域和作用域链
2024-08-25 01:22:01
JS---作用域和作用域链
作用域就是变量与函数的可访问范围,即作用域控制着变量与函数的可见性和生命周期。在JavaScript中,变量的作用域有全局作用域和局部作用域两种。
//常犯的一个错误 <button id="button1">Button1</button>
<button id="button2">Button2</button>
<button id="button3">Button3</button> <script type="text/javascript">
function buttonInit(){
for(var i=1;i<4;i++){
var b=document.getElementById("button"+i);
b.addEventListener("click",function(){ alert("Button"+i);},false);
}
}
window.onload=buttonInit;
</script> //结果都是 button3!!
//这是因为,for等没有块级作用域的概念,就算是 函数,也不算是块级作用域,只能叫做为函数作用域。var i =1,相当于在函数buttonInit()里的全局变量,每次的循环,都会改变这个变量。所以i最终的结果都是3!! //如何修改呢
function buttonInit(){
for(var i=1;i<4;i++){
var b = document.getElementById("button" + i);
(function (a)
{
b.addEventListener("click", function () { alert("Button" + a); }, false);
})(i);
//采用自调用函数
}
}
最新文章
- MyEclipse使用心得:SVN插件安装方法
- jade模板
- Java单例模式实现(线程安全)
- 【转】COM技术内幕(笔记)
- Unity3d知识体系思维导图
- 烂泥:【解决】Ubuntu下使用SSH连接centos系统很慢
- asp.net 页面跳转传值的几种方式
- [网络技术]网关 路由器 OSI
- pytest学习笔记(三)
- 修改hosts文件解决OneDrive被墙的问题
- ceph运维命令合集
- 可扩展的listview--Expandablelistview
- Unity3D 之UGUI 滑动条(Slider)
- oracle 同样数据删除(仅仅留一条)
- java中Timer计时器使用
- SDN期末作业
- Spring Cloud学习笔记-003
- 理解JSON Web Token (一)
- shiro源码篇 - shiro的session的查询、刷新、过期与删除,你值得拥有
- Glufster挂载失败Mount failed. Please check the log file for more details解决办法
热门文章
- 将webcam设置为网站favicon
- leecode第二百九十二题(Nim游戏)
- (23)socket多进程并发
- numpy和matplotlib
- Python的类的下划线命名的区别
- sublime和vscode 格式化Json ——两步走
- 还能不能愉快地起一个web服务啦?——1st Step!白话http和代码交互的那点儿事儿~
- 2019.3.16数据结构考试(Problem 1. rotinv)(循环逆序对)
- 中国建设工程造价管理系统 http://zaojiasys.jianshe99.com/cecaopsys/
- 微信小程序笔记