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 相关文章推荐
JS.GetAllChild(element,deep,condition)使用介绍
Sep 21 Javascript
js控制input输入字符解析
Dec 27 Javascript
js动态调用css属性的小规律及实例说明
Dec 28 Javascript
AngularJS表格详解及示例代码
Aug 17 Javascript
javascript设计模式Constructor(构造器)模式
Aug 19 Javascript
Vue实现动态创建和删除数据的方法
Mar 17 Javascript
解决vue-router中的query动态传参问题
Mar 20 Javascript
layui点击按钮添加可编辑的一行方法
Aug 15 Javascript
js笔试题-接收get请求参数
Jun 15 Javascript
js找出5个数中最大的一个数和倒数第二大的数实现方法示例小结
Mar 04 Javascript
JavaScript类的继承多种实现方法
May 30 Javascript
javascript遍历对象的五种方式实例代码
Oct 24 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会话(Session)实现用户登陆功能
2013/06/29 PHP
PHP中通过trigger_error触发PHP错误示例
2015/06/23 PHP
浅谈php的优缺点
2015/07/14 PHP
Laravel使用RabbitMQ的方法示例
2019/06/18 PHP
JavaScript 判断判断某个对象是Object还是一个Array
2010/01/28 Javascript
JavaScript 读取元素的CSS信息的代码
2010/02/07 Javascript
Javascript 类与静态类的实现(续)
2010/04/02 Javascript
JQury slideToggle闪烁问题及解决办法
2011/07/05 Javascript
JQuery模板插件 jquery.tmpl 动态ajax扩展
2011/11/10 Javascript
tangram框架响应式加载图片方法
2013/11/21 Javascript
javascript中加号(+)操作符的一些神奇作用
2014/06/06 Javascript
javascript常用函数归纳整理
2014/10/31 Javascript
jQuery带箭头提示框tooltips插件集锦
2014/11/17 Javascript
innerHTML属性,outerHTML属性,textContent属性,innerText属性区别详解
2015/03/13 Javascript
基于AngularJS实现页面滚动到底自动加载数据的功能
2015/10/16 Javascript
jQuery移动页面开发中的触摸事件与虚拟鼠标事件简介
2015/12/03 Javascript
关于List.ToArray()方法的效率测试
2016/09/30 Javascript
EasyUI学习之DataGird分页显示数据
2016/12/29 Javascript
jQuery实现的简单动态添加、删除表格功能示例
2017/09/21 jQuery
python snownlp情感分析简易demo(分享)
2017/06/04 Python
python绘制铅球的运行轨迹代码分享
2017/11/14 Python
Diango + uwsgi + nginx项目部署的全过程(可外网访问)
2018/04/22 Python
Python3.6.0+opencv3.3.0人脸检测示例
2018/05/25 Python
安装docker-compose的两种最简方法
2019/07/30 Python
python GUI库图形界面开发之PyQt5美化窗体与控件(异形窗体)实例
2020/02/25 Python
python不相等的两个字符串的 if 条件判断为True详解
2020/03/12 Python
纯css3实现宠物小鸡实例代码
2018/10/08 HTML / CSS
Lookfantastic日本官网:英国知名护肤、化妆品和头发护理购物网站
2018/04/21 全球购物
英国排名第一的礼品体验公司:Red Letter Days
2018/08/16 全球购物
三星新西兰官网:Samsung新西兰
2019/03/05 全球购物
Conforama瑞士:家具、厨房、电器、装饰
2020/09/06 全球购物
Android笔试题总结
2014/11/29 面试题
办公室秘书岗位职责范本
2014/02/11 职场文书
廉洁自律承诺书2016
2016/03/25 职场文书
python的netCDF4批量处理NC格式文件的操作方法
2022/03/21 Python
用Python仅20行代码编写一个简单的端口扫描器
2022/04/08 Python