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 相关文章推荐
Web Inspector:关于在 Sublime Text 中调试Js的介绍
Apr 18 Javascript
简介JavaScript中search()方法的使用
Jun 06 Javascript
js实现手机发送验证码功能
Mar 13 Javascript
详解vue模拟加载更多功能(数据追加)
Jun 23 Javascript
JavaScript创建对象_动力节点Java学院整理
Jun 27 Javascript
JavaScript之Map和Set_动力节点Java学院整理
Jun 29 Javascript
React学习之事件绑定的几种方法对比
Sep 24 Javascript
Vue之mixin全局的用法详解
Aug 22 Javascript
解决vuecli3.0热更新失效的问题
Sep 19 Javascript
jQuery实现经典的网页3D轮播图封装功能【附源码下载】
Feb 15 jQuery
jquery实现图片无缝滚动 蒙版遮蔽效果
Jan 11 jQuery
vue简单封装axios插件和接口的统一管理操作示例
Feb 02 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二维数组排序的3种方法和自定义函数分享
2014/04/09 PHP
PHP三元运算的2种写法代码实例
2014/05/12 PHP
php实现RSA加密类实例
2015/03/26 PHP
基于php判断客户端类型
2016/10/14 PHP
PHP常见加密函数用法示例【crypt与md5】
2019/01/27 PHP
用ADODB.Stream转换
2007/01/22 Javascript
asp(javascript)全角半角转换代码 dbc2sbc
2009/08/06 Javascript
iframe 父窗口和子窗口相互的调用方法集锦
2010/12/15 Javascript
利用js(jquery)操作Cookie的方法说明
2013/12/19 Javascript
js中定义一个变量并判断其是否为空的方法
2014/05/13 Javascript
原创jQuery弹出层插件分享
2015/04/02 Javascript
文字垂直滚动之javascript代码
2015/07/29 Javascript
jQuery+CSS3实现点赞功能
2017/03/13 Javascript
JavaScript闭包的简单应用
2017/09/01 Javascript
Three.js利用顶点绘制立方体的方法详解
2017/09/27 Javascript
js生成word中图片处理方法
2018/01/06 Javascript
pace.js和NProgress.js两个加载进度插件的一点小总结
2018/01/31 Javascript
vue实现文字横向无缝走马灯组件效果的实例代码
2019/04/09 Javascript
细说webpack6 Babel的使用详解
2019/09/26 Javascript
解决antd 下拉框 input [defaultValue] 的值的问题
2020/10/31 Javascript
Python和JavaScript间代码转换的4个工具
2016/02/22 Python
Phantomjs抓取渲染JS后的网页(Python代码)
2016/05/13 Python
pandas read_excel()和to_excel()函数解析
2019/09/19 Python
Tensorflow 卷积的梯度反向传播过程
2020/02/10 Python
Python列表解析操作实例总结
2020/02/26 Python
python3将变量写入SQL语句的实现方式
2020/03/02 Python
Python如何定义有默认参数的函数
2020/08/10 Python
python爬虫爬取淘宝商品比价(附淘宝反爬虫机制解决小办法)
2020/12/03 Python
德国大型的家具商店:Pharao24.de
2016/10/02 全球购物
HUGO BOSS美国官方网上商店:世界知名奢侈品牌
2017/08/04 全球购物
英国在线药房和在线药剂师:Chemist 4 U
2020/01/05 全球购物
开办饭店创业计划书
2013/12/28 职场文书
爱与责任演讲稿
2014/05/20 职场文书
2015教师节师德演讲稿
2015/03/19 职场文书
2015大学党建带团建工作总结
2015/07/23 职场文书
2015质检员个人年终工作总结
2015/10/23 职场文书