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 json2 使用方法
Mar 16 Javascript
file模式访问网页时iframe高度自适应解决方案
Jan 16 Javascript
IE网页js语法错误2行字符1、FF中正常的解决方法
Sep 09 Javascript
使用原生JS实现弹出层特效
Dec 22 Javascript
深入理解JavaScript系列(44):设计模式之桥接模式详解
Mar 04 Javascript
JavaScript实现字符串与日期的互相转换及日期的格式化
Mar 07 Javascript
js实现键盘自动打字效果
Dec 23 Javascript
vue中各选项及钩子函数执行顺序详解
Aug 25 Javascript
解决vue项目运行提示Warnings while compiling.警告的问题
Sep 18 Javascript
keep-alive保持组件状态的方法
Dec 02 Javascript
详解JavaScript中分解数字的三种方法
Jan 05 Javascript
JavaScript this关键字的深入详解
Jan 14 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
windwos下使用php连接oracle数据库的过程分享
2014/05/26 PHP
php中Redis的应用--消息传递
2017/03/28 PHP
收集的10个免费的jQuery相册
2011/02/26 Javascript
ExtJS4 组件化编程,动态加载,面向对象,Direct
2011/05/12 Javascript
基于MVC3方式实现下拉列表联动(JQuery)
2013/09/02 Javascript
JavaScript验证18位身份证号码最后一位正确性的实现代码
2014/08/07 Javascript
node.js中的path.resolve方法使用说明
2014/12/08 Javascript
js在指定位置增加节点函数insertBefore()用法实例
2015/01/12 Javascript
JS中Json数据的处理和解析JSON数据的方法详解
2016/06/29 Javascript
微信小程序使用第三方库Immutable.js实例详解
2016/09/27 Javascript
微信小程序 location API接口详解及实例代码
2016/10/12 Javascript
PHP+jquery+ajax实现分页
2016/12/09 Javascript
web 屏蔽BackSpace键实例代码
2016/12/24 Javascript
nodejs创建简易web服务器与文件读写的实例
2017/09/07 NodeJs
微信小程序多音频播放进度条问题
2018/08/28 Javascript
Vue 实现前进刷新后退不刷新的效果
2019/06/14 Javascript
Vue实现点击箭头上下移动效果
2020/06/11 Javascript
vue3.0 的 Composition API 的使用示例
2020/10/26 Javascript
[02:00]最后,我终于出了辉耀
2018/03/27 DOTA
利用python爬取散文网的文章实例教程
2017/06/18 Python
python使用Matplotlib画条形图
2020/03/25 Python
Python字符串格式化输出代码实例
2019/11/22 Python
tensorflow 查看梯度方式
2020/02/04 Python
python GUI库图形界面开发之PyQt5中QMainWindow, QWidget以及QDialog的区别和选择
2020/02/26 Python
基于python实现matlab filter函数过程详解
2020/06/08 Python
预订全球最佳旅行体验:Viator
2018/03/30 全球购物
德国玩具商店:Planet Happy DE
2021/01/16 全球购物
大唐电信科技股份有限公司java工程师面试经历
2016/12/09 面试题
到底Java是如何传递参数的?是by value或by reference?
2012/07/13 面试题
标准化管理实施方案
2014/02/25 职场文书
活动总结格式范文
2014/04/26 职场文书
党性分析自查总结
2014/10/14 职场文书
党员个人自我评价
2015/03/03 职场文书
民事辩护词范文
2015/05/21 职场文书
摘录式读书笔记
2015/07/01 职场文书
python游戏开发之pygame实现接球小游戏
2022/04/22 Python