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 相关文章推荐
避免回车键导致的页面无意义刷新的解决方法
Apr 12 Javascript
javascript学习笔记(九)javascript中的原型(prototype)及原型链的继承方式
Apr 12 Javascript
读jQuery之十三 添加事件和删除事件的核心方法
Aug 23 Javascript
Node.js中AES加密和其它语言不一致问题解决办法
Mar 10 Javascript
15个常用的jquery代码片段
Dec 19 Javascript
Google 地图API Map()构造器详解
Aug 06 Javascript
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
Dec 15 Javascript
jQuery简单实现MD5加密的方法
Mar 03 Javascript
基于Vue的SPA动态修改页面title的方法(推荐)
Jan 02 Javascript
setTimeout与setInterval的区别浅析
Mar 23 Javascript
js将URL网址转为16进制加密与解密函数
Mar 04 Javascript
vue中使用腾讯云Im的示例
Oct 23 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 图像处理类1
2009/06/15 PHP
PHP form 表单传参明细研究
2009/07/17 PHP
PHP函数getenv简介和使用实例
2014/05/12 PHP
C# WinForm中实现快捷键自定义设置实例
2015/01/23 PHP
php基于session实现数据库交互的类实例
2015/08/03 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
2016/05/16 PHP
jQuery中使用data()方法读取HTML5自定义属性data-*实例
2014/04/11 Javascript
jquery JSON的解析方式示例介绍
2014/07/27 Javascript
javascript自定义函数参数传递为字符串格式
2014/07/29 Javascript
Bootstrap布局组件应用实例讲解
2016/02/17 Javascript
jquery datatable服务端分页
2016/08/31 Javascript
js基础之DOM中元素对象的属性方法详解
2016/10/28 Javascript
JS实现同一DOM元素上onClick事件与onDblClick事件并存的解决方法
2018/06/07 Javascript
在Vuex使用dispatch和commit来调用mutations的区别详解
2018/09/18 Javascript
解析vue、angular深度作用选择器
2019/09/11 Javascript
layui 实现加载动画以及非真实加载进度的方法
2019/09/23 Javascript
Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)
2019/12/11 Javascript
js如何验证密码强度
2020/03/18 Javascript
Element Alert警告的具体使用方法
2020/07/27 Javascript
Python的Flask框架中实现登录用户的个人资料和头像的教程
2015/04/20 Python
Linux 发邮件磁盘空间监控(python)
2016/04/23 Python
python机器学习之神经网络(二)
2017/12/20 Python
Python上下文管理器全实例详解
2019/11/12 Python
python+django+selenium搭建简易自动化测试
2020/08/19 Python
详解Python中的编码问题(encoding与decode、str与bytes)
2020/09/30 Python
HTML5响应式(自适应)网页设计的实现
2017/11/17 HTML / CSS
Kent & Curwen:与大卫·贝克汉姆合作
2017/06/13 全球购物
八一建军节活动方案
2014/02/10 职场文书
酒店端午节促销方案
2014/02/18 职场文书
材料会计岗位职责
2014/03/06 职场文书
技术入股合作协议书
2014/10/07 职场文书
未婚证明格式
2015/06/15 职场文书
党员观看《筑梦中国》心得体会
2016/01/18 职场文书
《打电话》教学反思
2016/02/22 职场文书
python实现大文本文件分割成多个小文件
2021/04/20 Python
MySQL数据库如何使用Shell进行连接
2022/04/12 MySQL