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 相关文章推荐
自定义右键属性覆盖浏览器默认右键行为实现代码
Feb 02 Javascript
JS修改css样式style浅谈
May 06 Javascript
JS实现在线统计一个页面内鼠标点击次数的方法
Feb 28 Javascript
jQuery使用fadein方法实现渐出效果实例
Mar 27 Javascript
使用jquery清空、复位整个输入域
Apr 02 Javascript
javascript基础语法学习笔记
Jan 04 Javascript
Node.js Streams文件读写操作详解
Jul 04 Javascript
jQuery的Each比JS原生for循环性能慢很多的原因
Jul 05 Javascript
angular中实现li或者某个元素点击变色的两种方法
Jul 27 Javascript
Vue Transition实现类原生组件跳转过渡动画的示例
Aug 19 Javascript
AngularJS 事件发布机制
Aug 28 Javascript
angularjs1.5 组件内用函数向外传值的实例
Sep 30 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系列学习之日期函数使用介绍
2012/08/18 PHP
Laravel框架路由配置总结、设置技巧大全
2014/09/03 PHP
PHP中header用法小结
2016/05/23 PHP
PHP数据对象PDO操作技巧小结
2016/09/27 PHP
数组任意位置插入元素,删除特定元素的实例
2017/03/02 PHP
Laravel中使用Queue的最基本操作教程
2017/12/27 PHP
用javascript实现读取txt文档的脚本
2007/07/20 Javascript
javascript 去字符串空格终极版(支持utf8)
2009/11/14 Javascript
各浏览器对link标签onload/onreadystatechange事件支持的差异分析
2011/04/27 Javascript
jQuery的3种请求方式$.post,$.get,$.getJSON
2014/03/28 Javascript
封装了一个支持匿名函数的Javascript事件监听器
2014/06/05 Javascript
jquery实现个人中心导航菜单效果和美观都非常不错
2014/09/02 Javascript
JS实现文字放大效果的方法
2015/03/03 Javascript
原生js结合html5制作简易的双色子游戏
2015/03/30 Javascript
JavaScript DOM基础
2015/04/13 Javascript
JavaScript电子时钟倒计时第二款
2016/01/10 Javascript
搞定immutable.js详细说明
2016/05/02 Javascript
jQuery实现摸拟alert提示框
2016/05/22 Javascript
vue中将网页打印成pdf实例代码
2017/06/15 Javascript
vue中touch和click共存的解决方式
2020/07/28 Javascript
Vant+postcss-pxtorem 实现浏览器适配功能
2021/02/05 Javascript
在Python中操作字符串之rstrip()方法的使用
2015/05/19 Python
Python的numpy库中将矩阵转换为列表等函数的方法
2018/04/04 Python
python K近邻算法的kd树实现
2018/09/06 Python
Python3的介绍、安装和命令行的认识(推荐)
2018/10/20 Python
PyQt5中QTableWidget如何弹出菜单的示例代码
2020/02/23 Python
python列表的逆序遍历实现
2020/04/20 Python
解决reload(sys)后print失效的问题
2020/04/25 Python
澳大利亚新奇小玩意网站:Yellow Octopus
2017/12/28 全球购物
C#如何允许一个类被继承但是避免这个类的方法被重载?
2015/02/24 面试题
顺丰快递Java软件工程师面试题
2015/07/31 面试题
致跳远、跳高运动员广播稿
2014/01/09 职场文书
中式婚礼主持词
2014/03/13 职场文书
2014年平安建设工作总结
2014/11/19 职场文书
倡议书怎么写?
2019/04/11 职场文书
基于Python实现流星雨效果的绘制
2022/03/18 Python