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 相关文章推荐
JavaScript函数、方法、对象代码
Oct 29 Javascript
一个用javascript写的select支持上下键、首字母筛选以及回车取值的功能
Sep 09 Javascript
IE6下CSS图片缓存问题解决方法
Dec 09 Javascript
js数组如何添加json数据及js数组与json的区别
Oct 27 Javascript
jQuery手动点击实现图片轮播特效
Apr 20 Javascript
简单的JS轮播图代码
Jul 18 Javascript
JavaScript数组操作函数汇总
Aug 05 Javascript
localStorage实现便签小程序
Nov 28 Javascript
原生JavaScript实现remove()和recover()功能示例
Jul 24 Javascript
微信小程序实现下拉框功能
Jul 16 Javascript
Vue.js使用axios动态获取response里的data数据操作
Sep 08 Javascript
Vant picker 多级联动操作
Nov 02 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中多维数组的foreach遍历示例
2014/06/13 PHP
php简单实现多字节字符串翻转的方法
2015/03/31 PHP
php自动载入类用法实例分析
2016/06/24 PHP
Javascript typeof 用法
2008/12/28 Javascript
ExtJs扩展之GroupPropertyGrid代码
2010/03/05 Javascript
jQuery maxlength文本字数限制插件
2010/04/16 Javascript
Node.js:Windows7下搭建的Node.js服务(来玩玩服务器端的javascript吧,这可不是前端js插件)
2011/06/27 Javascript
js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍
2013/01/24 Javascript
基于jQuery中对数组进行操作的方法
2013/04/16 Javascript
JavaScript设置首页和收藏页面的小例子
2013/11/11 Javascript
JSON中双引号的轮回使用过程中一定要小心
2014/03/05 Javascript
Javascript验证上传图片大小[前台处理]
2014/07/18 Javascript
点评js异步加载的4种方式
2015/12/22 Javascript
javascript运动效果实例总结(放大缩小、滑动淡入、滚动)
2016/01/08 Javascript
javascript滚轮控制模拟滚动条
2016/10/19 Javascript
Ajax与服务器(JSON)通信实例代码
2016/11/05 Javascript
详解vue-cli开发环境跨域问题解决方案
2017/06/06 Javascript
VUEX 数据持久化,刷新后重新获取的例子
2019/11/12 Javascript
vue如何使用外部特殊字体的操作
2020/07/30 Javascript
javaScript代码飘红报错看不懂?读完这篇文章再试试
2020/08/19 Javascript
Webpack的Loader和Plugin的区别
2020/11/09 Javascript
Python列出一个文件夹及其子目录的所有文件
2016/06/30 Python
pandas 读取各种格式文件的方法
2018/06/22 Python
可能是最全面的 Python 字符串拼接总结【收藏】
2018/07/09 Python
Python 实现两个服务器之间文件的上传方法
2019/02/13 Python
python 实现快速生成连续、随机字母列表
2019/11/28 Python
python打印n位数“水仙花数”(实例代码)
2019/12/25 Python
基于python实现地址和经纬度转换
2020/05/19 Python
计算机专业推荐信范文
2013/11/27 职场文书
行政副总岗位职责
2014/02/23 职场文书
建筑投标担保书
2014/05/20 职场文书
十佳家长事迹材料
2014/08/26 职场文书
客房服务员岗位职责
2015/02/09 职场文书
简历自我评价优缺点
2015/03/11 职场文书
党员读书活动心得体会
2016/01/14 职场文书
基于Python实现对比Exce的工具
2022/04/07 Python