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 相关文章推荐
jquery判断checkbox(复选框)是否被选中的代码
Oct 20 Javascript
javascript面向对象编程代码
Dec 19 Javascript
如何让easyui gridview 宽度自适应窗口改变及fitColumns应用
Jan 25 Javascript
下拉列表select 由左边框移动到右边示例
Dec 04 Javascript
js实现多选项切换导航菜单的方法
Feb 06 Javascript
js仿拉勾网首页穿墙广告效果
Mar 08 Javascript
jQuery插件HighCharts实现的2D条状图效果示例【附demo源码下载】
Mar 15 Javascript
vue 内置过滤器的使用总结(附加自定义过滤器)
Dec 11 Javascript
详解如何理解vue的key属性
Apr 14 Javascript
vue-cli3中vue.config.js配置教程详解
May 29 Javascript
浅析JavaScript 函数防抖和节流
Jul 13 Javascript
创建与框架无关的JavaScript插件
Dec 01 Javascript
三种动态加载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
thinkphp中字符截取函数msubstr()用法分析
2016/01/09 PHP
php面向对象程序设计中self与static的区别分析
2019/05/21 PHP
Yii框架学习笔记之应用组件操作示例
2019/11/13 PHP
jquery 常用操作整理 基础入门篇
2009/10/14 Javascript
js word表格动态添加代码
2010/06/07 Javascript
jQuery EasyUI API 中文文档 - Parser 解析器
2011/09/29 Javascript
node.js 一个简单的页面输出实现代码
2012/03/07 Javascript
JS+css 图片自动缩放自适应大小
2013/08/08 Javascript
node.js中的dns.getServers方法使用说明
2014/12/08 Javascript
javascript实现表格增删改操作实例详解
2015/05/15 Javascript
Node.js中JavaScript操作MySQL的常用方法整理
2016/03/01 Javascript
Svg.js实例教程及使用手册详解(一)
2016/05/16 Javascript
微信JS-SDK自定义分享功能实例详解【分享给朋友/分享到朋友圈】
2016/11/25 Javascript
浅析上传头像示例及其注意事项
2016/12/14 Javascript
Vue2.0 事件的广播与接收(观察者模式)
2018/03/14 Javascript
layer设置maxWidth及maxHeight解决方案
2019/07/26 Javascript
细说webpack6 Babel的使用详解
2019/09/26 Javascript
[40:10]2015国际邀请赛全明星表演赛
2015/08/07 DOTA
[00:19]CN DOTA NEVER DIE!VG夺冠rOtK接受采访
2019/12/23 DOTA
在Mac OS上部署Nginx和FastCGI以及Flask框架的教程
2015/05/02 Python
Python入门之modf()方法的使用
2015/05/15 Python
python安装mysql-python简明笔记(ubuntu环境)
2016/06/25 Python
利用pyinstaller或virtualenv将python程序打包详解
2017/03/22 Python
最近Python有点火? 给你7个学习它的理由!
2017/06/26 Python
python opencv 直方图反向投影的方法
2018/02/24 Python
flask session组件的使用示例
2018/12/25 Python
基于Python爬取搜狐证券股票过程解析
2020/11/18 Python
OpenCV+python实现膨胀和腐蚀的示例
2020/12/21 Python
汽车专业毕业生自荐信
2013/11/03 职场文书
党员群众路线承诺书
2014/05/20 职场文书
毕业生班级鉴定评语
2015/01/04 职场文书
2015年关爱留守儿童工作总结
2015/05/22 职场文书
学校运动会加油词
2015/07/18 职场文书
小学中队长竞选稿
2015/11/20 职场文书
2016五一手机促销广告语
2016/01/28 职场文书
nginx sticky实现基于cookie负载均衡示例详解
2022/12/24 Servers