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 1.7.2中getAll方法的疑惑分析
May 23 Javascript
做好七件事帮你提升jQuery的性能
Feb 06 Javascript
jquery让返回的内容显示在特定div里(代码少而精悍)
Jun 23 Javascript
JavaScript判断变量是否为空的自定义函数分享
Jan 31 Javascript
Js的Array数组对象详解
Feb 22 Javascript
JavaScript 获取元素在父节点中的下标(推荐)
Jun 28 Javascript
关于ES6箭头函数中的this问题
Feb 27 Javascript
react 国际化的实现代码示例
Sep 14 Javascript
JavaScript实现与使用发布/订阅模式详解
Jan 19 Javascript
Vue.js递归组件实现组织架构树和选人功能
Jul 04 Javascript
从0到1学习JavaScript编写贪吃蛇游戏
Jul 28 Javascript
微信小程序实现打卡签到页面
Sep 21 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开发过程中常用函数收藏
2009/12/14 PHP
php数组函数序列之sort() 对数组的元素值进行升序排序
2011/11/02 PHP
域名和cookie问题(域名后缀)
2012/10/10 PHP
JavaScript生成GUID的多种算法小结
2013/08/18 Javascript
jquery购物车实时结算特效实现思路
2013/09/23 Javascript
jQuery不兼容input的change事件问题解决过程
2014/12/05 Javascript
jquery实现标签上移、下移、置顶
2015/04/26 Javascript
JS与Ajax Get和Post在使用上的区别实例详解
2016/06/08 Javascript
AngularJS入门教程之Scope(作用域)
2016/07/27 Javascript
Bootstrap基本组件学习笔记之按钮组(8)
2016/12/07 Javascript
JS验证不重复验证码
2017/02/10 Javascript
jQuery遮罩层实例讲解
2017/05/11 jQuery
bootstrap datetimepicker控件位置异常的解决方法
2017/11/23 Javascript
微信小程序自定义组件之可清除的input组件
2018/07/17 Javascript
ng-repeat指令在迭代对象时的去重方法
2018/10/02 Javascript
深入学习JavaScript 高阶函数
2019/06/11 Javascript
微信小程序之数据绑定原理解析
2019/08/14 Javascript
[07:39]第一届亚洲邀请赛回顾视频
2017/02/14 DOTA
[03:21]【TI9纪实】Old Boys
2019/08/23 DOTA
将Python代码嵌入C++程序进行编写的实例
2015/07/31 Python
Python入门_浅谈for循环、while循环
2017/05/16 Python
将pip源更换到国内镜像的详细步骤
2019/04/07 Python
一个可以套路别人的python小程序实例代码
2019/04/09 Python
用Python调用win命令行提高工作效率的实例
2019/08/14 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
2019/10/14 Python
django框架F&amp;Q 聚合与分组操作示例
2019/12/12 Python
python pycharm最新版本激活码(永久有效)附python安装教程
2020/09/18 Python
pytorch的batch normalize使用详解
2020/01/15 Python
使用python计算三角形的斜边例子
2020/04/15 Python
世界上最大的网络主机公司:1&1
2016/10/12 全球购物
linux面试题参考答案(7)
2012/10/29 面试题
文明宿舍获奖感言
2014/02/07 职场文书
运动会铅球比赛加油稿
2014/09/26 职场文书
2015民办小学年度工作总结
2015/05/26 职场文书
如何利用python和DOS获取wifi密码
2021/03/31 Python
springboot 自定义配置 解决Boolean属性不生效
2022/03/18 Java/Android