js的闭包的一个示例说明


Posted in Javascript onNovember 18, 2008
function outside() 
{ 
var myVar = 1; 
return function (){ 
alert(myVar); 
} 
} 
var t = outside(); 
t();

js中 某个函数的内部函数在该函数执行结束后仍然可以访问这个函数中定义的变量,这称为闭包(Closure)
下面例子是给三个锚anchor1,anchor2,anchor3添加onclick事件,可以预期的效果是点击锚点显示相应的锚点ID,实际上却都是显示"My id is anchor4", 这个就是闭包作用引起的逻辑上的bug,添加事件的函数执行完后i的值为4,
ADS.addEvent(window, 'load', function(W3CEvent) {m 
for (var i=1 ; i<=3 ; i++ ) { var anchor = document.getElementById('anchor' + i); 
ADS.addEvent(anchor,'click',function() { 
alert('My id is anchor' + i); 
}); 
} 
});
Javascript 相关文章推荐
使用ExtJS技术实现的拖动树结点
Aug 05 Javascript
AJAX跨域请求json数据的实现方法
Nov 11 Javascript
javascript数据结构与算法之检索算法
Apr 04 Javascript
js实现兼容IE和FF的上下层的移动
May 04 Javascript
kindeditor编辑器点中图片滚动条往上顶的bug
Jul 05 Javascript
jquery if条件语句的写法
May 19 Javascript
jquery插件uploadify多图上传功能实现代码
Aug 12 Javascript
[原创]javascript typeof id==='string'?document.getElementById(id):id解释
Nov 02 Javascript
原生js实现商品放大镜效果
Jan 12 Javascript
详解React-Native全球化多语言切换工具库react-native-i18n
Nov 03 Javascript
react+ant design实现Table的增、删、改的示例代码
Dec 27 Javascript
微信小程序反编译的实现
Dec 10 Javascript
Ext面向对象开发实践(续)
Nov 18 #Javascript
Javascript打印网页部分内容的脚本
Nov 17 #Javascript
js实现简单模态窗口,背景灰显
Nov 14 #Javascript
javascript 限制输入和粘贴(IE,firefox测试通过)
Nov 14 #Javascript
javascript 出生日期和身份证判断大全
Nov 13 #Javascript
Ajax,UTF-8还是GB2312 eval 还是execScript
Nov 13 #Javascript
刷新页面实现方式总结(HTML,ASP,JS)
Nov 13 #Javascript
You might like
php strftime函数获取日期时间(switch用法)
2018/05/16 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
JavaScript利用正则表达式去除日期中的“-”
2014/07/01 Javascript
点评js异步加载的4种方式
2015/12/22 Javascript
js控住DOM实现发布微博效果
2016/08/30 Javascript
vue-router跳转页面的方法
2017/02/09 Javascript
JS实现颜色的10进制转化成rgba格式的方法
2017/09/04 Javascript
vue.js实现格式化时间并每秒更新显示功能示例
2018/07/07 Javascript
解决LayUI表单获取不到data的问题
2018/08/20 Javascript
element-ui 设置菜单栏展开的方法
2018/08/22 Javascript
Vue中使用sass实现换肤功能
2018/09/07 Javascript
新手必须知的Node.js 4个JavaScript基本概念
2018/09/16 Javascript
JS基于Location实现访问Url、重定向及刷新页面的方法分析
2018/12/03 Javascript
JS中的一些常用的函数式编程术语
2019/06/15 Javascript
[04:39]显微镜下的DOTA2第十三期—Pis卡尔个人秀
2014/04/04 DOTA
python3 模拟登录v2ex实例讲解
2017/07/13 Python
Python微医挂号网医生数据抓取
2019/01/24 Python
python操作excel让工作自动化
2019/08/09 Python
翻转数列python实现,求前n项和,并能输出整个数列的案例
2020/05/03 Python
django 模型中的计算字段实例
2020/05/19 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
2020/06/02 Python
手把手教你从PyCharm安装到激活(最新激活码),亲测有效可激活至2089年
2020/11/25 Python
纯CSS3实现给头像加个光芒四射且旋转的背景动画效果
2014/05/07 HTML / CSS
HTML5 drag和drop具体使用详解
2021/01/18 HTML / CSS
印度服装购物网站:Limeroad
2018/09/26 全球购物
MaBelle玛贝尔香港官网:香港钻饰连锁店
2019/09/09 全球购物
使用索引(Index)有哪些需要考虑的因素
2016/10/19 面试题
学校采购员岗位职责
2014/01/02 职场文书
教师暑期培训感言
2014/08/15 职场文书
求职自我评价范文100字
2014/09/23 职场文书
入党积极分子自我批评思想汇报
2014/10/10 职场文书
关于空气污染危害的感想
2015/08/11 职场文书
外出考察学习心得体会
2016/01/18 职场文书
redis 查看所有的key方式
2021/05/07 Redis
详解在SQLPlus中实现上下键翻查历史命令的功能
2022/03/18 SQL Server
SpringBoot详解执行过程
2022/07/15 Java/Android