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 相关文章推荐
任意位置显示html菜单
Feb 01 Javascript
javascript call方法使用说明
Jan 11 Javascript
javascript学习笔记(六) Date 日期类型
Jun 19 Javascript
深入领悟JavaScript中的面向对象
Nov 18 Javascript
页面按钮禁用与解除禁用的方法
Feb 19 Javascript
js验证IP及子网掩码的合法性有效性示例
Apr 30 Javascript
jQuery弹出层插件Lightbox_me使用指南
Apr 21 Javascript
JavaScript校验Number(4,1)格式的数字实例代码
Mar 13 Javascript
javascript实现日期三级联动下拉框选择菜单
Dec 03 Javascript
angularjs实现过滤并替换关键字小功能
Sep 19 Javascript
使用react实现手机号的数据同步显示功能的示例代码
Apr 03 Javascript
原生js代码能实现call和bind吗
Jul 31 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 Array交叉表实现代码
2010/08/05 PHP
PHP随机数生成代码与使用实例分析
2011/04/08 PHP
百度工程师讲PHP函数的实现原理及性能分析(三)
2015/05/13 PHP
thinkPHP5.1框架中Request类四种调用方式示例
2019/08/03 PHP
PHP中SESSION过期设置
2021/03/09 PHP
javascript修改表格背景色实例代码分享
2013/12/10 Javascript
js关于精确计算和数值格式化以及直接引js文件
2014/01/28 Javascript
javascript使用smipleChart实现简单图表
2015/01/02 Javascript
js replace(a,b)之替换字符串中所有指定字符的方法
2016/08/17 Javascript
浅谈js中test()函数在正则中的使用
2016/08/19 Javascript
JavaScript中的编码和解码函数
2017/02/15 Javascript
详解使用fetch发送post请求时的参数处理
2017/04/05 Javascript
[js高手之路]图解javascript的原型(prototype)对象,原型链实例
2017/08/28 Javascript
jQuery实现页码跳转式动态数据分页
2017/12/31 jQuery
JQuery中DOM节点的操作与访问方法实例分析
2019/12/23 jQuery
小程序实现列表倒计时功能
2021/01/29 Javascript
[04:44]显微镜下的DOTA2第二期——你所没有注意到的细节
2014/06/20 DOTA
Python科学计算之Pandas详解
2017/01/15 Python
Python3简单实例计算同花的概率代码
2017/12/06 Python
Python 2.7中文显示与处理方法
2018/07/16 Python
Python爬虫文件下载图文教程
2018/12/23 Python
Python中的几种矩阵乘法(小结)
2019/07/10 Python
伦敦哈德森鞋:Hudson Shoes
2018/02/06 全球购物
写一个方法1000的阶乘
2012/11/21 面试题
幼儿园春游活动方案
2014/01/19 职场文书
企业承诺书怎么写
2014/05/24 职场文书
学校三节实施方案
2014/06/09 职场文书
我的中国梦演讲稿500字
2014/08/19 职场文书
简单租房协议书范本
2014/08/20 职场文书
小学绿色学校申报材料
2014/08/23 职场文书
责任书范本
2014/08/25 职场文书
共产党员批评与自我批评
2014/10/15 职场文书
html+css实现赛博朋克风格按钮
2021/05/26 HTML / CSS
OpenCV-Python实现人脸磨皮算法
2021/06/07 Python
python turtle绘制多边形和跳跃和改变速度特效
2022/03/16 Python
pandas时间序列之pd.to_datetime()的实现
2022/06/16 Python