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在光标位置插入内容的实现代码
Jun 18 Javascript
基于jQuery+HttpHandler实现图片裁剪效果代码(适用于论坛, SNS)
Sep 02 Javascript
Javascript中Event属性搜集整理
Sep 17 Javascript
Javascript获取当前日期的农历日期代码
Oct 08 Javascript
JavaScript中的数据类型转换方法小结
Oct 26 Javascript
运用js教你轻松制作html音乐播放器
Apr 17 Javascript
浅析BootStrap Treeview的简单使用
Oct 12 Javascript
jquery表单验证插件validation使用方法详解
Jan 20 Javascript
JS实现控制图片显示大小的方法【图片等比例缩放功能】
Feb 18 Javascript
详解Vue的computed(计算属性)使用实例之TodoList
Aug 07 Javascript
微信小程序实现tab切换效果
Nov 21 Javascript
react国际化react-intl的使用
May 06 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
解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
2013/06/24 PHP
10款实用的PHP开源工具
2015/10/23 PHP
在Mac OS上搭建Nginx+PHP+MySQL开发环境的教程
2015/12/21 PHP
Yii模型操作之criteria查找数据库的方法
2016/07/15 PHP
Laravel框架Auth用户认证操作实例分析
2019/09/29 PHP
Laravel 创建指定表 migrate的例子
2019/10/09 PHP
CLASS_CONFUSION JS混淆 全源码
2007/12/12 Javascript
关于JAVASCRIPT urldecode URL解码的问题
2012/01/08 Javascript
JS获取URL中参数值(QueryString)的4种方法分享
2014/04/12 Javascript
js实现简单的购物车有图有代码
2014/05/26 Javascript
js实现带缓动动画的导航栏效果
2017/01/16 Javascript
nodejs 终端打印进度条实例代码
2017/04/22 NodeJs
vue 2.0项目中如何引入element-ui详解
2017/09/06 Javascript
JS设计模式之惰性模式(二)
2017/09/29 Javascript
JavaScript自执行函数和jQuery扩展方法详解
2017/10/27 jQuery
vue项目中引入noVNC远程桌面的方法
2018/03/05 Javascript
详解webpack-dev-server 设置反向代理解决跨域问题
2018/04/18 Javascript
微信小程序城市选择及搜索功能的方法
2019/03/22 Javascript
vue中使用腾讯云Im的示例
2020/10/23 Javascript
Django中更新多个对象数据与删除对象的方法
2015/07/17 Python
详解Python中映射类型的内建函数和工厂函数
2015/08/19 Python
Python变量和字符串详解
2017/04/29 Python
Anaconda多环境多版本python配置操作方法
2017/09/12 Python
Python中新式类与经典类的区别详析
2019/07/10 Python
python修改字典键(key)的方法
2019/08/05 Python
Python3之字节串bytes与字节数组bytearray的使用详解
2019/08/27 Python
python-web根据元素属性进行定位的方法
2019/12/13 Python
Python对称的二叉树多种思路实现方法
2020/02/28 Python
英国Iceland杂货店:网上食品购物
2020/12/16 全球购物
银行纠风工作实施方案
2014/06/08 职场文书
会计求职自荐信
2015/03/26 职场文书
酒桌上的祝酒词
2015/08/12 职场文书
python制作图形界面的2048游戏, 基于tkinter
2021/04/06 Python
利用Python读取微信朋友圈的多种方法总结
2021/08/23 Python
python小型的音频操作库mp3Play
2022/04/24 Python
Redis主从复制操作和配置详情
2022/09/23 Redis