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函数
Aug 01 Javascript
jquery插件jbox使用iframe关闭问题
Feb 09 Javascript
Jquery css函数用法(判断标签是否拥有某属性)
May 28 Javascript
jQuery写fadeTo示例代码
Feb 21 Javascript
jquery检测input checked 控件是否被选中的方法
Mar 26 Javascript
jQuery中使用data()方法读取HTML5自定义属性data-*实例
Apr 11 Javascript
浅谈javascript 归并方法
Jan 21 Javascript
JavaScript中this的用法实例分析
Dec 19 Javascript
利用Node.js编写跨平台的spawn语句详解
Feb 12 Javascript
layui选项卡效果实现代码
May 19 Javascript
微信小程序之多列表的显示和隐藏功能【附源码】
Aug 06 Javascript
jQuery HTML获取内容和属性操作实例分析
May 20 jQuery
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
咖啡是不是喝了会上瘾?咖啡是必须品吗!
2021/03/04 新手入门
PHP5新特性: 更加面向对象化的PHP
2006/11/18 PHP
php session劫持和防范的方法
2013/11/12 PHP
Codeigniter检测表单post数据的方法
2015/03/21 PHP
php实现的验证码文件类实例
2015/06/18 PHP
PHP魔术方法之__call与__callStatic使用方法
2017/07/23 PHP
laravel框架中控制器的创建和使用方法分析
2019/11/23 PHP
ext checkboxgroup 回填数据解决
2009/08/21 Javascript
JavaScript转换农历类实现及调用方法
2013/01/27 Javascript
window.location.reload()方法刷新页面弹出要再次显示该网页对话框
2013/04/24 Javascript
用jquery方法操作radio使其默认选项是否
2013/09/10 Javascript
jQuery scroll事件实现监控滚动条分页示例
2014/04/04 Javascript
24款热门实用的jQuery插件推荐
2014/12/24 Javascript
JavaScript设置、获取、清除单值和多值cookie的方法
2015/11/17 Javascript
AngularJS 中使用Swiper制作滚动图不能滑动的解决方法
2016/11/15 Javascript
JavaScript使用atan2来绘制箭头和曲线的实例
2017/09/14 Javascript
详解Js中的模块化是如何实现的
2017/10/18 Javascript
Nuxt.js踩坑总结分享
2018/01/18 Javascript
ExtJs整合Echarts的示例代码
2018/02/27 Javascript
JS实现获取进今年第几天是周几的方法分析
2018/06/27 Javascript
JS数组扁平化(flat)方法总结详解
2019/06/24 Javascript
Electron + vue 打包桌面操作流程详解
2019/06/24 Javascript
微信小程序实现导航栏和内容上下联动功能代码
2020/06/29 Javascript
vue 获取url里参数的两种方法小结
2020/11/12 Javascript
keep-alive保持组件状态的方法
2020/12/02 Javascript
python自动化测试之连接几组测试包实例
2014/09/28 Python
Python学习笔记之Django创建第一个数据库模型的方法
2019/08/07 Python
Atom Python 配置Python3 解释器的方法
2019/08/28 Python
python 创建一维的0向量实例
2019/12/02 Python
Python基于当前时间批量创建文件
2020/05/07 Python
python自动打开浏览器下载zip并提取内容写入excel
2021/01/04 Python
css3 media 响应式布局的简单实例
2016/08/03 HTML / CSS
详解CSS3新增的背景属性
2019/12/25 HTML / CSS
酒店管理专业毕业生推荐信
2013/11/10 职场文书
银行客户经理岗位职责
2015/04/09 职场文书
Go语言grpc和protobuf
2022/04/13 Golang