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 数组的方法集合
Jun 05 Javascript
JQuery 学习笔记 选择器之一
Jul 23 Javascript
jquery实现简单的拖拽效果实例兼容所有主流浏览器
Jun 21 Javascript
JS时间特效最常用的三款
Aug 19 Javascript
HTML5canvas 绘制一个圆环形的进度表示实例
Dec 16 Javascript
详解Angularjs在控制器(controller.js)中使用过滤器($filter)格式化日期/时间实例
Feb 17 Javascript
angular.JS实现网页禁用调试、复制和剪切
Mar 31 Javascript
浅谈Vue响应式(数组变异方法)
May 07 Javascript
微信小程序常用赋值方法小结
Apr 30 Javascript
使用vue中的混入mixin优化表单验证插件问题
Jul 02 Javascript
vue.js使用v-model实现父子组件间的双向通信示例
Feb 05 Javascript
Node使用koa2实现一个简单JWT鉴权的方法
Jan 26 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/06/28 PHP
php设计模式 DAO(数据访问对象模式)
2011/06/26 PHP
php截取后台登陆密码的代码
2012/05/05 PHP
无JS,完全php面向过程数据分页实现代码
2012/08/27 PHP
PHP迭代器实现斐波纳契数列的函数
2013/11/12 PHP
php实例分享之通过递归实现删除目录下的所有文件详解
2014/05/15 PHP
ThinkPHP模板判断输出Empty标签用法详解
2014/06/30 PHP
PHP实现对数字分隔加千分号的方法
2019/03/18 PHP
js 判断checkbox是否选中的实现代码
2010/11/23 Javascript
读jQuery之九 一些瑕疵说明
2011/06/21 Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
2015/06/05 Javascript
JavaScript实现同一页面内两个表单互相传值的方法
2015/08/12 Javascript
jQuery幻灯片带缩略图轮播效果代码分享
2015/08/17 Javascript
使用AJAX实现Web页面进度条的实例分享
2016/05/06 Javascript
jQuery深拷贝Json对象简单示例
2016/07/06 Javascript
利用forever和pm2部署node.js项目过程
2017/05/10 Javascript
基于VUE选择上传图片并页面显示(图片可删除)
2017/05/25 Javascript
QQ跳转支付宝并自动领红包脚本(最新)
2018/06/22 Javascript
Vue实现商品飞入购物车效果(电商项目)
2019/11/26 Javascript
vue中用 async/await 来处理异步操作
2020/07/18 Javascript
详细介绍Python中的偏函数
2015/04/27 Python
python3获取当前文件的上一级目录实例
2018/04/26 Python
Python 文本文件内容批量抽取实例
2018/12/10 Python
Python2和3字符编码的区别知识点整理
2019/08/08 Python
Python自动化测试笔试面试题精选
2020/03/12 Python
keras 自定义loss model.add_loss的使用详解
2020/06/22 Python
python调用摄像头的示例代码
2020/09/28 Python
HTML table 表格边框的实现思路
2019/10/12 HTML / CSS
Html5页面获取微信公众号的openid的方法
2020/05/12 HTML / CSS
英国网上香水店:Fragrance Direct
2016/07/20 全球购物
英国最大的体育&时尚零售公司:JD Sports
2017/12/13 全球购物
实习单位推荐信范文
2013/11/27 职场文书
2015教师个人工作总结范文
2015/03/31 职场文书
微信小程序scroll-view不能左右滑动问题的解决方法
2021/07/09 Javascript
win10频率超出范围怎么办?win10老显示超出工作频率范围的解决方法
2022/07/07 数码科技
element tree树形组件回显数据问题解决
2022/08/14 Javascript