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 相关文章推荐
基于jQuery实现下拉收缩(展开与折叠)特效
Dec 25 Javascript
javascript中日期转换成时间戳的小例子
Mar 21 Javascript
关于backbone url请求中参数带有中文存入数据库是乱码的快速解决办法
Jun 13 Javascript
JQuery实现动态操作表格
Jan 11 Javascript
详解Vuex中mapState的具体用法
Sep 28 Javascript
bootstrap日期插件daterangepicker使用详解
Oct 19 Javascript
VUE2 前端实现 静态二级省市联动选择select的示例
Feb 09 Javascript
15分钟深入了解JS继承分类、原理与用法
Jan 19 Javascript
使用layui+ajax实现简单的菜单权限管理及排序的方法
Sep 10 Javascript
浅谈layui数据表格判断问题(加入表单元素),设置单元格样式
Oct 26 Javascript
vue 解决form表单提交但不跳转页面的问题
Oct 30 Javascript
JavaScript高级程序设计之基本引用类型
Nov 17 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/10/04 PHP
PHP flock 文件锁详细介绍
2012/12/29 PHP
php加密解密函数authcode的用法详细解析
2013/10/28 PHP
javascript 读取XML数据,在页面中展现、编辑、保存的实现
2009/10/27 Javascript
JavaScript 图片预览效果 推荐
2009/12/22 Javascript
js通过地址栏给action传值(中文乱码全是问号)
2013/05/02 Javascript
javascript实现通过表格绘制颜色填充矩形的方法
2015/04/21 Javascript
纯JS代码实现一键分享功能
2016/04/20 Javascript
详解JavaScript对象类型
2016/06/16 Javascript
详解JavaScript节流函数中的Throttle
2016/07/16 Javascript
浅谈jQuery中ajaxPrefilter的应用
2016/08/01 Javascript
js中开关变量使用实例
2017/02/24 Javascript
Angular 4 依赖注入学习教程之FactoryProvider的使用(四)
2017/06/04 Javascript
详解vue + vuex + directives实现权限按钮的思路
2017/10/24 Javascript
解决vue-cli + webpack 新建项目出错的问题
2018/03/20 Javascript
Vue.js 实现微信公众号菜单编辑器功能(二)
2018/05/08 Javascript
一些手写JavaScript常用的函数汇总
2019/04/16 Javascript
JS实现处理时间,年月日,星期的公共方法示例
2019/05/31 Javascript
jquery实现有过渡效果的tab切换
2020/07/17 jQuery
[01:34]传奇从这开始 2016国际邀请赛中国区预选赛震撼开启
2016/06/26 DOTA
python绘图方法实例入门
2015/05/19 Python
Python操作MySQL数据库9个实用实例
2015/12/11 Python
python 写的一个爬虫程序源码
2016/02/28 Python
Python实现基于POS算法的区块链
2018/08/07 Python
详解Django 时间与时区设置问题
2019/07/23 Python
Python Selenium截图功能实现代码
2020/04/26 Python
Django Model中字段(field)的各种选项说明
2020/05/19 Python
优质美利奴羊毛袜,不只是徒步旅行:Darn Tough Vermont
2018/11/05 全球购物
2013年办公室秘书的个人自我鉴定
2013/10/24 职场文书
英语教学随笔感言
2014/02/20 职场文书
爱我中华教学反思
2014/04/28 职场文书
客户答谢会致辞
2015/01/20 职场文书
故意杀人罪辩护词
2015/05/21 职场文书
MongoDB日志切割的三种方式总结
2021/09/15 MongoDB
python调用ffmpeg命令行工具便捷操作视频示例实现过程
2021/11/01 Python
Python机器学习实战之k-近邻算法的实现
2021/11/27 Python