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 相关文章推荐
extjs form textfield的隐藏方法
Dec 29 Javascript
元素未显示设置width/height时IE中使用currentStyle获取为auto
May 04 Javascript
js操作iframe父子窗体示例
May 22 Javascript
javascript的动态加载、缓存、更新以及复用(一)
Jun 09 Javascript
21个JavaScript事件(Events)属性汇总
Dec 02 Javascript
使用jQuery.form.js/springmvc框架实现文件上传功能
May 12 Javascript
基于Vue2.0的分页组件
Mar 16 Javascript
微信小程序之蓝牙的链接
Sep 26 Javascript
详解auto-vue-file:一个自动创建vue组件的包
Apr 26 Javascript
ionic4+angular7+cordova上传图片功能的实例代码
Jun 19 Javascript
详解Vue的组件中data选项为什么必须是函数
Aug 17 Javascript
js实现菜单跳转效果
Dec 11 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下一个非常全面获取图象信息的函数
2008/11/20 PHP
curl不使用文件存取cookie php使用curl获取cookie示例
2014/01/26 PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
2016/01/27 PHP
动态刷新 dorado树的js代码
2009/06/12 Javascript
JS date对象的减法处理实现代码
2010/12/28 Javascript
js自定义方法通过隐藏iframe实现文件下载
2013/02/21 Javascript
jquery进行数组遍历如何跳出当前的each循环
2014/06/05 Javascript
js实现图片轮播效果
2015/12/19 Javascript
javascript实现倒计时跳转页面
2016/01/17 Javascript
Javascript中构造函数要注意的一些坑
2017/01/23 Javascript
vue与TypeScript集成配置最简教程(推荐)
2017/10/17 Javascript
详解vue-cli快速构建vue应用并实现webpack打包
2017/12/13 Javascript
VUE2.0+ElementUI2.0表格el-table实现表头扩展el-tooltip
2018/11/30 Javascript
three.js实现炫酷的全景3D重力感应
2018/12/30 Javascript
Element-ui自定义table表头、修改列标题样式、添加tooltip、:render-header使用
2019/04/11 Javascript
Vue CL3 配置路径别名详解
2019/05/30 Javascript
浅析vue-router实现原理及两种模式
2020/02/11 Javascript
详解React 条件渲染
2020/07/08 Javascript
[03:09]DOTA2亚洲邀请赛 LGD战队出场宣传片
2015/02/07 DOTA
浅谈python装饰器探究与参数的领取
2017/12/01 Python
Python全局变量与局部变量区别及用法分析
2018/09/03 Python
Scrapy框架使用的基本知识
2018/10/21 Python
python 内置模块详解
2019/01/01 Python
对python中Librosa的mfcc步骤详解
2019/01/09 Python
python代码打印100-999之间的回文数示例
2019/11/24 Python
html5 touch事件实现触屏页面上下滑动(二)
2016/03/10 HTML / CSS
欧舒丹美国官网:L’Occitane美国
2018/02/23 全球购物
Cotton On香港网站:澳洲时装连锁品牌
2018/11/01 全球购物
澳大利亚排名第一的狂热牛仔品牌:ONETEASPOON
2018/11/20 全球购物
揠苗助长教学反思
2014/02/04 职场文书
手工社团活动方案
2014/02/17 职场文书
爱护公物演讲稿
2014/09/09 职场文书
2015年教师新年寄语
2014/12/08 职场文书
2016优秀大学生个人事迹材料范文
2016/03/01 职场文书
关于感恩老师的古诗句
2019/08/20 职场文书
redis内存空间效率问题的深入探究
2021/05/17 Redis