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 图片轮换效果
Jul 29 Javascript
自制基于jQuery的智能提示插件一枚
Feb 18 Javascript
疯狂Jquery第一天(Jquery学习笔记)
May 11 Javascript
mailto的使用技巧分享
Dec 21 Javascript
jquery与js函数冲突的两种解决方法
Sep 09 Javascript
JS实现固定在右下角可展开收缩DIV层的方法
Feb 13 Javascript
javascript中setAttribute()函数使用方法及兼容性
Jul 19 Javascript
json对象与数组以及转换成js对象的简单实现方法
Jun 24 Javascript
js实现倒计时关键代码
May 05 Javascript
JavaScript实现重力下落与弹性效果的方法分析
Dec 20 Javascript
JS中appendChild追加子节点无效的解决方法
Oct 14 Javascript
简单了解常用的JavaScript 库
Jul 16 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来处理多个提交任务
2008/05/08 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
jQuery toggle()设置CSS样式
2009/11/05 Javascript
Extjs改变树节点的勾选状态点击按钮将复选框去掉
2013/11/14 Javascript
判断window.onload是否多次使用的方法
2014/09/21 Javascript
JavaScript页面模板库handlebars的简单用法
2015/03/02 Javascript
分享Javascript实用方法二
2015/12/13 Javascript
理解javascript中的严格模式
2016/02/01 Javascript
JavaScript数据类型学习笔记分享
2016/09/01 Javascript
js弹出窗口简单实现代码
2017/03/22 Javascript
jQuery 添加样式属性的优先级别方法(推荐)
2017/06/08 jQuery
JS实现发送短信验证后按钮倒计时功能(防止刷新倒计时失效)
2017/07/07 Javascript
JS路由跳转的简单实现代码
2017/09/21 Javascript
解决Angular.js中使用Swiper插件不能滑动的问题
2018/02/26 Javascript
浅谈node中的cluster集群
2018/06/02 Javascript
JavaScript对象的浅拷贝与深拷贝实例分析
2018/07/25 Javascript
angular2实现统一的http请求头方法
2018/08/13 Javascript
Layui点击图片弹框预览的实现方法
2019/09/16 Javascript
vue动态渲染svg、添加点击事件的实现
2020/03/13 Javascript
JS中的继承操作实例总结
2020/06/06 Javascript
ng-alain的sf如何自定义部件的流程
2020/06/12 Javascript
python爬虫headers设置后无效的解决方法
2017/10/21 Python
Python numpy生成矩阵、串联矩阵代码分享
2017/12/04 Python
使用matplotlib画散点图的方法
2018/05/25 Python
和孩子一起学习python之变量命名规则
2018/05/27 Python
python实现月食效果实例代码
2019/06/18 Python
10款最好的Python开发编辑器
2019/07/03 Python
Python3enumrate和range对比及示例详解
2019/07/13 Python
pytorch神经网络之卷积层与全连接层参数的设置方法
2019/08/18 Python
python使用rsa非对称加密过程解析
2019/12/28 Python
在tensorflow中设置使用某一块GPU、多GPU、CPU的操作
2020/02/07 Python
keras 指定程序在某块卡上训练实例
2020/06/22 Python
Python编写memcached启动脚本代码实例
2020/08/14 Python
Brydge英国:适用于Apple iPad和Microsoft Surface Pro的蓝牙键盘
2019/05/16 全球购物
php中pcntl_fork详解
2021/04/01 PHP
详细谈谈JavaScript中循环之间的差异
2021/08/23 Javascript