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编程起步(第四课)
Jan 10 Javascript
javascript 词法作用域和闭包分析说明
Aug 12 Javascript
jQuery Ajax方法调用 Asp.Net WebService 的详细实例代码
Apr 27 Javascript
JS 控制小数位数的实现代码
Aug 02 Javascript
Javascript 鼠标移动上去小三角形滑块缓慢跟随效果
Apr 26 Javascript
jquery快捷动态绑定键盘事件的操作函数代码
Oct 17 Javascript
jquery自定义滚动条插件示例分享
Feb 21 Javascript
让JavaScript中setTimeout支持链式操作的方法
Jun 19 Javascript
jq实现左侧显示图片右侧文字滑动切换效果
Aug 04 Javascript
easy ui datagrid 从编辑框中获取值的方法
Feb 22 Javascript
微信小程序 自定义消息提示框
Aug 06 Javascript
js实现自定义滚动条的示例
Oct 27 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中用接口、抽象类、普通基类实现“面向接口编程”与“耦合方法”简述
2011/03/23 PHP
解决PHP4.0 和 PHP5.0类构造函数的兼容问题
2013/08/01 PHP
PHP strip_tags保留多个HTML标签的方法
2016/05/22 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
Javascript 中文字符串处理额外注意事项
2009/11/15 Javascript
ASP.NET中基于JQUERY的高性能的TreeView补充
2011/02/23 Javascript
Javascript学习指南
2014/12/01 Javascript
js实现同一个页面多个渐变效果的方法
2015/04/10 Javascript
个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节
2015/06/10 Javascript
javascript容错处理代码(屏蔽js错误)
2017/01/20 Javascript
JavaScript实现获取用户单击body中所有A标签内容的方法
2017/06/05 Javascript
详解利用 Vue.js 实现前后端分离的RBAC角色权限管理
2017/09/15 Javascript
Vue引用第三方datepicker插件无法监听datepicker输入框的值的解决
2018/01/27 Javascript
JS实现鼠标拖拽盒子移动及右键点击盒子消失效果示例
2019/01/29 Javascript
微信小程序 行的删除和增加操作实现详解
2019/09/29 Javascript
Vue实现渲染数据后控制滚动条位置(推荐)
2019/12/09 Javascript
vue使用echarts图表自适应的几种解决方案
2020/12/04 Vue.js
ptyhon实现sitemap生成示例
2014/03/30 Python
python使用pymysql实现操作mysql
2016/09/13 Python
详解Python中的相对导入和绝对导入
2017/01/06 Python
Python运行不显示DOS窗口的解决方法
2018/10/22 Python
使用python对多个txt文件中的数据进行筛选的方法
2019/07/10 Python
Python JSON编解码方式原理详解
2020/01/20 Python
python爬虫开发之selenium模块详细使用方法与实例全解
2020/03/09 Python
Python中三维坐标空间绘制的实现
2020/09/22 Python
html5本地存储之localstorage 、本地数据库、sessionStorage简单使用示例
2014/05/08 HTML / CSS
canvas实现扭蛋机动画效果的示例代码
2018/10/17 HTML / CSS
阿拉伯书店:Jamalon
2019/07/24 全球购物
linux下进程间通信的方式
2014/12/23 面试题
酒店值班经理的工作职责范本
2014/02/18 职场文书
初中新生军训方案
2014/05/13 职场文书
陈胜吴广起义口号
2014/06/20 职场文书
机械工程及自动化专业求职信
2014/09/03 职场文书
2014年小学重阳节活动策划方案
2014/09/16 职场文书
民主生活会发言材料
2014/10/20 职场文书
优秀校长事迹材料
2014/12/24 职场文书