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 相关文章推荐
用js读、写、删除Cookie代码分享及详细注释说明
Jun 05 Javascript
JS实现为表格动态添加标题的方法
Mar 31 Javascript
学习Bootstrap滚动监听 附调用方法
Jul 02 Javascript
JavaScript数组去重由慢到快由繁到简(优化篇)
Aug 26 Javascript
使用JQuery选择HTML遍历函数的方法
Sep 17 Javascript
JS中关于事件处理函数名后面是否带括号的问题
Nov 16 Javascript
JQuery ZTree使用方法详解
Jan 07 Javascript
JS简单实现获取元素的封装操作示例
Apr 07 Javascript
Vue加载组件、动态加载组件的几种方式
Aug 31 Javascript
JavaScript迭代器的含义及用法
Jun 21 Javascript
vue 指令和过滤器的基本使用(品牌管理案例)
Nov 04 Javascript
react项目从新建到部署的实现示例
Feb 19 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
php+Mysqli利用事务处理转账问题实例
2015/02/11 PHP
PHP中把数据库查询结果输出为json格式简单实例
2015/04/09 PHP
基于CI(CodeIgniter)框架实现购物车功能的方法
2018/04/09 PHP
ExtJS 2.0实用简明教程 之ExtJS版的Hello
2009/04/29 Javascript
JS操作Cookies包括(读取添加与删除)
2012/12/26 Javascript
jQuery操作DOM之获取表单控件的值
2015/01/23 Javascript
JQuery给网页更换皮肤的方法
2015/05/30 Javascript
jQuery增加与删除table列的方法
2016/03/01 Javascript
如何用JavaScript实现动态修改CSS样式表
2016/05/20 Javascript
使用jQuery Rotare实现微信大转盘抽奖功能
2016/06/20 Javascript
JavaScript中函数声明与函数表达式的区别详解
2016/08/18 Javascript
Angular 4.x中表单Reactive Forms详解
2017/04/25 Javascript
详解Angular 4.x NgTemplateOutlet
2017/05/24 Javascript
JavaScript基于activexobject连接远程数据库SQL Server 2014的方法
2017/07/12 Javascript
Nodejs 复制文件/文件夹的方法
2017/08/24 NodeJs
vue-auto-focus: 控制自动聚焦行为的 vue 指令方法
2018/08/25 Javascript
JavaScript 2018 中即将迎来的新功能
2018/09/21 Javascript
js实现简单贪吃蛇游戏
2020/05/15 Javascript
Python常见数据结构详解
2014/07/24 Python
python中使用xlrd、xlwt操作excel表格详解
2015/01/29 Python
python定时检查某个进程是否已经关闭的方法
2015/05/20 Python
Python实现的简单hangman游戏实例
2015/06/28 Python
python下载图片实现方法(超简单)
2017/07/21 Python
python 多线程中子线程和主线程相互通信方法
2018/11/09 Python
python实现抽奖小程序
2020/04/15 Python
python实现基于朴素贝叶斯的垃圾分类算法
2019/07/09 Python
通过字符串导入 Python 模块的方法详解
2019/10/27 Python
在Python中使用MongoEngine操作数据库教程实例
2019/12/03 Python
python实现根据给定坐标点生成多边形mask的例子
2020/02/18 Python
详解Python IO编程
2020/07/24 Python
北京大学自荐信范文
2014/01/28 职场文书
霸王洗发水广告词
2014/03/14 职场文书
《火烧云》教学反思
2014/04/12 职场文书
六年级小学生评语
2014/12/26 职场文书
Python使用sql语句对mysql数据库多条件模糊查询的思路详解
2021/04/12 Python
什么是SOLID
2022/03/24 Javascript