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编程起步(第四课)
Jan 10 Javascript
UpdatePanel和Jquery冲突的解决方法
Apr 01 Javascript
基于javascipt-dom编程 table对象的使用
Apr 22 Javascript
简单实现限制uploadify上传个数
Nov 16 Javascript
判断输入的字符串是否是日期格式的简单方法
Jul 11 Javascript
JS图片等比例缩放方法完整示例
Aug 03 Javascript
AngularJS使用自定义指令替代ng-repeat的方法
Sep 17 Javascript
Jquery 整理元素选取、常用方法一览表
Nov 26 Javascript
Bootstrap轮播图学习使用
Feb 10 Javascript
ES6正则表达式扩展笔记
Jul 25 Javascript
解决Layui 表单提交数据为空的问题
Aug 15 Javascript
vue+moment实现倒计时效果
Aug 26 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
php的curl实现get和post的代码
2008/08/23 PHP
php中存储用户ID和密码到mysql数据库的方法
2013/02/06 PHP
使用openssl实现rsa非对称加密算法示例
2014/01/24 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(四)
2014/06/23 PHP
php实现简单的语法高亮函数实例分析
2015/04/27 PHP
Thinkphp5+uploadify实现的文件上传功能示例
2018/05/26 PHP
laravel 获取某个查询的查询SQL语句方法
2019/10/12 PHP
Javascript实例教程(19) 使用HoTMetal(5)
2006/12/23 Javascript
告诉你什么是javascript的回调函数
2014/09/04 Javascript
JavaScript字符串对象charAt方法入门实例(用于取得指定位置的字符)
2014/10/17 Javascript
jquery结合CSS使用validate实现漂亮的验证
2015/01/29 Javascript
自己编写的支持Ajax验证的JS表单验证插件
2015/05/15 Javascript
jQuery实现带幻灯的tab滑动切换风格菜单代码
2015/08/27 Javascript
JS实现字符串转日期并比较大小实例分析
2015/12/09 Javascript
JS获取鼠标坐标位置实例分析
2016/01/20 Javascript
js手机号4位显示空格,银行卡每4位显示空格效果
2017/03/23 Javascript
jQuery实现动态生成表格并为行绑定单击变色动作的方法
2017/04/17 jQuery
laravel5.3 vue 实现收藏夹功能实例详解
2018/01/21 Javascript
js实现按钮开关单机下拉菜单效果
2018/11/22 Javascript
JS基于ES6新特性async await进行异步处理操作示例
2019/02/02 Javascript
微信小程序获取用户绑定手机号方法示例
2019/07/21 Javascript
Python多进程通信Queue、Pipe、Value、Array实例
2014/11/21 Python
两个命令把 Vim 打造成 Python IDE的方法
2016/03/20 Python
Python3爬虫学习之爬虫利器Beautiful Soup用法分析
2018/12/12 Python
CSS3的Flexbox布局的简明入门指南
2016/04/08 HTML / CSS
德国童装购物网站:NICKI´S.com
2018/04/20 全球购物
毕业自我鉴定书
2014/03/24 职场文书
财务部绩效考核方案
2014/05/04 职场文书
美国留学经济担保书
2014/05/20 职场文书
会计专业求职信
2014/08/10 职场文书
重点工程汇报材料
2014/08/27 职场文书
2015年教师新年寄语
2014/12/08 职场文书
大学毕业生个人总结
2015/02/28 职场文书
导游词之黄帝陵景区
2019/09/16 职场文书
nginx反向代理时如何保持长连接
2021/03/31 Servers
使用Apache Camel表达REST服务的方法
2022/06/10 Servers