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 相关文章推荐
extjs grid设置某列背景颜色和字体颜色的方法
Sep 03 Javascript
JavaScript的递归之递归与循环示例介绍
Aug 05 Javascript
鼠标移到图片上变大显示而不是放大镜效果
Jun 15 Javascript
基于jQuery实现下拉框
Nov 24 Javascript
JS实现的简单鼠标跟随DiV层效果完整实例
Oct 31 Javascript
JS控制按钮10秒钟后可用的方法
Dec 22 Javascript
使用jQuery实现WordPress中的Ctrl+Enter和@评论回复
May 21 Javascript
Bootstrap模态框禁用空白处点击关闭
Oct 20 Javascript
关于Stream和Buffer的相互转换详解
Jul 26 Javascript
jsonp格式前端发送和后台接受写法的代码详解
Nov 07 Javascript
JS script脚本中async和defer区别详解
Jun 24 Javascript
vue 接口请求地址前缀本地开发和线上开发设置方式
Aug 13 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
基于mysql的bbs设计(五)
2006/10/09 PHP
thinkphp中空模板与空模块的用法实例
2014/11/26 PHP
PHP中的静态变量及static静态变量使用详解
2015/11/05 PHP
php类中的$this,static,final,const,self这几个关键字使用方法
2015/12/14 PHP
能说明你的Javascript技术很烂的五个原因分析
2011/10/28 Javascript
解析window.open的使用方法总结
2013/06/19 Javascript
node.js实现逐行读取文件内容的代码
2014/06/27 Javascript
js继承call()和apply()方法总结
2014/12/08 Javascript
javascript中一些util方法汇总
2015/06/10 Javascript
js与applet相互调用的方法
2016/06/22 Javascript
jquery实现跳到底部,回到顶部效果的简单实例(类似锚)
2016/07/10 Javascript
VUE实现日历组件功能
2017/03/13 Javascript
vue递归获取父元素的元素实例
2020/08/07 Javascript
vue实现路由懒加载的3种方法示例
2020/09/01 Javascript
[01:06:32]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第一局
2016/02/28 DOTA
[48:20]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python中的tuple元组详细介绍
2015/02/02 Python
Python编程实现的简单Web服务器示例
2017/06/22 Python
python 实现对文件夹中的图像连续重命名方法
2018/10/25 Python
python 使用正则表达式按照多个空格分割字符的实例
2018/12/20 Python
Python 实现中值滤波、均值滤波的方法
2019/01/09 Python
PyQt5实现简单数据标注工具
2019/03/18 Python
Transpose 数组行列转置的限制方式
2020/02/11 Python
构建高效的python requests长连接池详解
2020/05/02 Python
Python制作数据预测集成工具(值得收藏)
2020/08/21 Python
django项目中使用云片网发送短信验证码的实现
2021/01/19 Python
详解CSS3媒体查询响应式布局bootstrap 框架原理实战(推荐)
2020/11/16 HTML / CSS
HTML5 video进入全屏和退出全屏的实现方法
2020/07/28 HTML / CSS
最新远光软件笔试题面试题内容
2013/11/08 面试题
社区禁毒工作方案
2014/06/02 职场文书
英文演讲稿开场白
2014/08/25 职场文书
公司感恩节活动策划书
2014/10/11 职场文书
中学生清明节演讲稿
2015/03/18 职场文书
2016年教师反腐倡廉心得体会
2016/01/13 职场文书
Redis Stream类型的使用详解
2021/11/11 Redis
实战Python爬虫爬取酷我音乐
2022/04/11 Python