javascript学习之闭包分析


Posted in Javascript onDecember 02, 2010

在ECMAScript中,在函数声明处向函数外部看到的声明的所有变量,在函数内部都能访问到它们的最终值

闭包函数只能访问变量的最终值!!!

eg: 

function fnTest(arr) {
  

for (var i=0;i < arr.length;i++) {

arr[i]=function () { alert(i+" | "+arr[i]); };
  

}
 }
 var arr = [0,1,2,3];
 fnTest(arr);
 for (var i=0;i < arr.length;i++) {
  arr[i](); 

//始终输出4还有一个undefined因为函数退出后,i值为4,所以访问到的值只有4

//结果会连续弹出4个"4|undefined”
 }

 不但在闭包中可以访问闭包外的变量值,而且还可以设置它的值

eg:

 function fnTest() {
  

var a="June";
  

return {
   

set:function (param) {a = param},
   

get:function () {return a}
  

};
 }
 var obj = fnTest();
 alert(obj.get());//弹出June

 obj.set(586);
 alert(obj.get());//弹出586 

Javascript 相关文章推荐
javascript css在IE和Firefox中区别分析
Feb 18 Javascript
跟着Jquery API学Jquery之一 选择器
Apr 07 Javascript
javascript实现密码强度显示
Mar 18 Javascript
基于jQuery倾斜打开侧边栏菜单特效代码
Sep 15 Javascript
Node.js与Sails ~项目结构与Mvc实现及日志机制
Oct 14 Javascript
jQuery代码实现图片墙自动+手动淡入淡出切换效果
May 09 Javascript
微信小程序 教程之WXSS
Oct 18 Javascript
jQuery编写设置和获取颜色的插件
Jan 09 Javascript
js自定义input文件上传样式
Oct 26 Javascript
JS中使用cavas截图网页并解决跨域及模糊问题
Nov 13 Javascript
Vue框架TypeScript装饰器使用指南小结
Feb 18 Javascript
测量JavaScript函数的性能各种方式对比
Apr 27 Javascript
JavaScript OOP面向对象介绍
Dec 02 #Javascript
JavaScript 字符串处理函数使用小结
Dec 02 #Javascript
改写一个简单的菜单 弹性大小
Dec 02 #Javascript
在Ajax中使用Flash实现跨域数据读取的实现方法
Dec 02 #Javascript
jQuery队列控制方法详解queue()/dequeue()/clearQueue()
Dec 02 #Javascript
JQuery 弹出框定位实现方法
Dec 02 #Javascript
Jquery replace 字符替换实现代码
Dec 02 #Javascript
You might like
可快速识别放射性物质-国外大神教你diy一个开放式辐射探测器
2020/03/12 无线电
一周让你学会PHP 不错的学习资料
2009/02/06 PHP
如何使用纯PHP实现定时器任务(Timer)
2015/07/31 PHP
PHP PDOStatement::getColumnMeta讲解
2019/02/01 PHP
zeroclipboard复制到剪切板的flash
2010/08/04 Javascript
Jquery网页出现的乱码问题的三种解决方法
2013/06/30 Javascript
Boostrap模态窗口的学习小结
2016/03/28 Javascript
漫谈JS引擎的运行机制 你应该知道什么
2016/06/15 Javascript
早该知道的7个JavaScript技巧
2016/06/21 Javascript
easyui messager alert 三秒后自动关闭提示的实例
2016/11/07 Javascript
ECMAScript6 新特性范例大全
2017/03/24 Javascript
详解ES6中的三种异步解决方案
2018/06/28 Javascript
js实现简单的日历显示效果函数示例
2019/11/25 Javascript
javascript实现打砖块小游戏(附完整源码)
2020/09/18 Javascript
通过实例解析javascript Date对象属性及方法
2020/11/04 Javascript
Vue实现指令式动态追加小球动画组件的步骤
2020/12/18 Vue.js
[01:42]TI4西雅图DOTA2前线报道 第一顿早饭哦
2014/07/08 DOTA
[01:00:14]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第三场
2018/04/10 DOTA
Python设计模式之门面模式简单示例
2018/01/09 Python
python用for循环求和的方法总结
2019/07/08 Python
Python实现代码统计工具
2019/09/19 Python
python实现输入任意一个大写字母生成金字塔的示例
2019/10/27 Python
matplotlib.pyplot.plot()参数使用详解
2020/07/28 Python
Python 数据的累加与统计的示例代码
2020/08/03 Python
迪卡侬英国官网:Decathlon英国
2017/04/08 全球购物
MCAKE蛋糕官方网站:一直都是巴黎的味道
2018/02/06 全球购物
英国浴室洗脸盆购物网站:Click Basin
2018/06/08 全球购物
100%羊绒:NakedCashmere
2020/08/26 全球购物
幼师自荐信
2013/10/26 职场文书
班主任工作经验材料
2014/02/02 职场文书
民生工作实施方案
2014/05/31 职场文书
中学学校门卫岗位职责
2014/08/15 职场文书
十二生肖观后感
2015/06/12 职场文书
小公司融资,商业计划书的8切记
2019/07/15 职场文书
浅谈Python响应式类库RxPy
2021/06/14 Python
MySQL Shell import_table数据导入的实现
2021/08/07 MySQL