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 jscroll模拟html元素滚动条
Dec 18 Javascript
捕获浏览器关闭、刷新事件不同情况下的处理方法
Jun 02 Javascript
JS弹出层的显示与隐藏示例代码
Dec 27 Javascript
jQuery实现可展开合拢的手风琴面板菜单
Sep 15 Javascript
微信小程序 绘图之饼图实现
Oct 24 Javascript
jquery事件与绑定事件
Mar 16 Javascript
Angular 4.x 动态创建表单实例
Apr 25 Javascript
OkHttp踩坑随笔为何 response.body().string() 只能调用一次
Jan 08 Javascript
Angular使用过滤器uppercase/lowercase实现字母大小写转换功能示例
Mar 27 Javascript
jQuery实现列表的增加和删除功能
Jun 14 jQuery
vue.js实现带日期星期的数字时钟功能示例
Aug 28 Javascript
jQuery实现简单QQ聊天框
Aug 27 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
php根据年月获取当月天数及日期数组的方法
2016/11/30 PHP
laravel 中某一字段自增、自减的例子
2019/10/11 PHP
PHP序列化和反序列化深度剖析实例讲解
2020/12/29 PHP
getElementByIdx_x js自定义getElementById函数
2012/01/24 Javascript
js/jquery解析json和数组格式的方法详解
2014/01/09 Javascript
NODE.JS加密模块CRYPTO常用方法介绍
2014/06/05 Javascript
一个css与js结合的下拉菜单支持主流浏览器
2014/10/08 Javascript
Jquery实现仿腾讯微博发表广播
2014/11/17 Javascript
javascript中加var和不加var的区别 你真的懂吗
2016/01/06 Javascript
js发送短信倒计时的简单实现方法
2016/09/08 Javascript
jQuery+ajax读取并解析XML文件的方法
2016/09/09 Javascript
Nodejs基于LRU算法实现的缓存处理操作示例
2017/03/17 NodeJs
微信小程序 input输入及动态设置按钮的实现
2017/10/27 Javascript
解决koa2 ctx.render is not a function报错问题
2018/08/07 Javascript
Vue 开发音乐播放器之歌手页右侧快速入口功能
2018/08/08 Javascript
vue移动端html5页面根据屏幕适配的四种解决方法
2018/10/19 Javascript
vue2.0项目集成Cesium的实现方法
2019/07/30 Javascript
使用JavaScript计算前一天和后一天的思路详解
2019/12/20 Javascript
JS删除数组指定值常用方法详解
2020/06/04 Javascript
使用python分析git log日志示例
2014/02/27 Python
python网络编程调用recv函数完整接收数据的三种方法
2017/03/31 Python
Python2.7读取PDF文件的方法示例
2017/07/13 Python
python中类的属性和方法介绍
2018/11/27 Python
python如何读取bin文件并下发串口
2019/07/05 Python
做一个能自适应高度的textarea的示例代码
2019/09/06 HTML / CSS
台湾最大银发乐活百货:乐龄网
2018/05/21 全球购物
J2ee常用的设计模式?说明工厂模式
2015/05/21 面试题
历史教育专业个人求职信
2013/12/13 职场文书
最受欢迎的自我评价
2013/12/22 职场文书
竞选班干部演讲稿
2014/04/24 职场文书
党员考试作弊检讨书1000字
2015/02/16 职场文书
导游词之吉林吉塔
2019/11/11 职场文书
详解CocosCreator项目结构机制
2021/04/14 Javascript
MySQL 使用事件(Events)完成计划任务
2021/05/24 MySQL
MySQL系列之十 MySQL事务隔离实现并发控制
2021/07/02 MySQL
Python获取江苏疫情实时数据及爬虫分析
2021/08/02 Python