javascript闭包入门示例


Posted in Javascript onApril 30, 2014

1.

functionsay667(){
varnum=666;
varsayAlert=function(){alert(num);}
num++;
returnsayAlert;
}
varsayAlert=say667();
sayAlert();

2.

functionsetUpSomeGlobals(){
varnum=666;
gAlertNumber=function(){alert(num);}
gIncreaseNumber=function(){num++;}
gSetNumber=function(x){num=x;}
}
setUpSomeGlobals();//为三个全局变量赋值
gAlertNumber();//666
gIncreaseNumber();
gAlertNumber();//667
gSetNumber(12);
gAlertNumber();//12

3.

functionbuildList(list){
varresult=[];
for(vari=0;i<list.length;i++){
variteml='item'+list[i];
result.push(function(){alert(item+''+list[i]);});
}
returnresult;
}
functiontestList(){
varfnlist=buildList([1,2,3]);
for(varj=0;j<fnlist.length;j++){
fnlist[j]();
}
}

4.

functionsayAlice(){
varsayAlert=function(){alert(alice);}
varalice='HelloAlice';
returnsayAlert;
}
varhelloAlice=sayAlice();
helloAlice();//HelloAlice

5.

functionnewClosure(someNum,someRef){
varnum=someNum;
varanArray=[1,2,3];
varref=someRef;
returnfunction(x){
num+=x;
anArray.push(num);
alert('num:'+num+'\nanArray'+anArray.toString()+'\nref.someVar'+ref.someVar);
}
}
closure1=newClosure(40,{someVar:'closure1'});
closure2=newClosure(1000,{someVar:'closure2'});
closure1(5);
closure2(-10);
Javascript 相关文章推荐
JavaScript 浮点数运算 精度问题
Oct 06 Javascript
兼容多浏览器的iframe自适应高度(ie8 、谷歌浏览器4.0和 firefox3.5.3)
Nov 04 Javascript
Chrome Form多次提交表单问题的解决方法
May 09 Javascript
javascript复制粘贴与clipboardData的使用
Oct 16 Javascript
javascript实现框架高度随内容改变的方法
Jul 23 Javascript
一些实用性较高的js方法
Apr 19 Javascript
JavaScript编写检测用户所使用的浏览器的代码示例
May 05 Javascript
Angular的Bootstrap(引导)和Compiler(编译)机制
Jun 20 Javascript
js变量提升深入理解
Sep 16 Javascript
单行 JS 实现移动端金钱格式的输入规则
May 22 Javascript
bootstrap multiselect 多选功能实现方法
Jun 05 Javascript
JQuery实现ul中添加LI和删除指定的Li元素功能完整示例
Oct 16 jQuery
三种动态加载js的jquery实例代码另附去除js方法
Apr 30 #Javascript
js动态控制table的tr、td增加及删除的具体实现
Apr 30 #Javascript
js控制href内容的连接内容的变化示例
Apr 30 #Javascript
js函数定时器实现定时读取系统实时连接数
Apr 30 #Javascript
struts2+jquery组合验证注册用户是否存在
Apr 30 #Javascript
jquery实现的网页自动播放声音
Apr 30 #Javascript
js验证IP及子网掩码的合法性有效性示例
Apr 30 #Javascript
You might like
JAVA/JSP学习系列之四
2006/10/09 PHP
检测png图片是否完整的php代码
2010/09/06 PHP
PHP实现多图上传(结合uploadify插件)思路分析
2016/11/30 PHP
PHP实现简单日历类编写
2020/08/28 PHP
基于mootools插件实现遮罩层新手引导
2012/05/24 Javascript
深入学习JavaScript中的原型prototype
2015/08/13 Javascript
JavaScript精炼之构造函数 Constructor及Constructor属性详解
2015/11/05 Javascript
jQuery动态添加
2016/04/07 Javascript
基于javascript的异步编程实例详解
2017/04/10 Javascript
jQuery ajax读取本地json文件的实例
2017/10/31 jQuery
实例介绍JavaScript中多种组合继承
2019/01/20 Javascript
详解 微信小程序开发框架(MINA)
2019/05/17 Javascript
react-native滑动吸顶效果的实现过程
2019/06/03 Javascript
vue 实现cli3.0中使用proxy进行代理转发
2019/10/30 Javascript
阿望教你用vue写扫雷小游戏
2020/01/20 Javascript
JavaScript Tab菜单实现过程解析
2020/05/13 Javascript
原生JS实现无缝轮播图片
2020/06/24 Javascript
JS常用跨域方法实现原理解析
2020/12/09 Javascript
[38:54]完美世界DOTA2联赛PWL S2 Rebirth vs LBZS 第一场 11.28
2020/12/01 DOTA
python模块restful使用方法实例
2013/12/10 Python
Python语法快速入门指南
2015/10/12 Python
Python实现各种排序算法的代码示例总结
2015/12/11 Python
python2与python3中关于对NaN类型数据的判断和转换方法
2018/10/30 Python
python 划分数据集为训练集和测试集的方法
2018/12/11 Python
详解Python正则表达式re模块
2019/03/19 Python
Django 数据库同步操作技巧详解
2019/07/19 Python
OpenCV3.0+Python3.6实现特定颜色的物体追踪
2019/07/23 Python
Django REST framwork的权限验证实例
2020/04/02 Python
20行Python代码实现视频字符化功能
2020/04/13 Python
德国机场停车位比较和预订网站:Ich-parke-billiger
2018/01/08 全球购物
医科学校毕业生自荐信
2013/11/09 职场文书
旅游专业职业生涯规划范文
2014/01/13 职场文书
文明礼貌演讲稿
2014/05/12 职场文书
在职人员跳槽求职信
2015/03/20 职场文书
2015年保险公司工作总结
2015/04/24 职场文书
工程竣工验收申请报告
2015/05/15 职场文书