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 获得绝对,相对位置的坐标方法
Feb 09 Javascript
jquery 删除字符串最后一个字符的方法解析
Feb 11 Javascript
通过location.replace禁止浏览器后退防止重复提交
Sep 04 Javascript
js利用appendChild对标签进行排序的实现方法
Oct 16 Javascript
jQuery插件ajaxFileUpload异步上传文件
Oct 19 Javascript
JS实现的样式切换功能tableCSS实例
Dec 30 Javascript
JS设置手机验证码60s等待实现代码
Jun 14 Javascript
微信小程序实现全国机场索引列表
Jan 31 Javascript
详解vue-cli 2.0配置文件(小结)
Jan 14 Javascript
JavaScript剩余操作符Rest Operator详解
Jul 20 Javascript
vue.js click点击事件获取当前元素对象的操作
Aug 07 Javascript
vue-cli3访问public文件夹静态资源报错的解决方式
Sep 02 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
md5 16位二进制与32位字符串相互转换示例
2013/12/30 PHP
php列出mysql表所有行和列的方法
2015/03/13 PHP
PHP CURL与java http使用方法详解
2018/01/26 PHP
laravel5.1框架model类查询的实现方法
2019/10/08 PHP
在VS2008中使用jQuery智能感应的方法
2010/12/30 Javascript
Ext JS 4官方文档之三 -- 类体系概述与实践
2012/12/16 Javascript
js弹出框轻量级插件jquery.boxy使用介绍
2013/01/15 Javascript
使用PHP+JQuery+Ajax分页的实现
2013/04/23 Javascript
transport.js和jquery冲突问题的解决方法
2015/02/10 Javascript
微信小程序 wxapp地图 map详解
2016/10/31 Javascript
Nodejs 和Session 原理及实战技巧小结
2017/08/25 NodeJs
js实现canvas图片与img图片的相互转换的示例
2017/08/31 Javascript
从源码看angular/material2 中 dialog模块的实现方法
2017/10/18 Javascript
vue组件中使用iframe元素的示例代码
2017/12/13 Javascript
JS使用栈判断给定字符串是否是回文算法示例
2019/03/04 Javascript
详解js创建对象的几种方法及继承
2019/04/12 Javascript
JS中使用react-tooltip插件实现鼠标悬浮显示框
2019/05/15 Javascript
python处理json数据中的中文
2014/03/06 Python
Python selenium 三种等待方式详解(必会)
2016/09/15 Python
python3库numpy数组属性的查看方法
2018/04/17 Python
python线程池threadpool使用篇
2018/04/27 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
2018/06/01 Python
实例讲解Python脚本成为Windows中运行的exe文件
2019/01/24 Python
python处理自动化任务之同时批量修改word里面的内容的方法
2019/08/23 Python
解决Python列表字符不区分大小写的问题
2019/12/19 Python
python Canny边缘检测算法的实现
2020/04/24 Python
深入研究HTML5实现图片压缩上传功能
2016/03/25 HTML / CSS
利用HTML5中的Canvas绘制一张笑脸的教程
2015/05/07 HTML / CSS
大学毕业生通用求职信
2013/09/28 职场文书
习近平在党的群众路线教育实践活动总结大会上的讲话
2014/10/21 职场文书
环卫工作汇报材料
2014/10/28 职场文书
2014年安全管理工作总结
2014/12/01 职场文书
经费申请报告
2015/05/15 职场文书
转变工作作风心得体会
2016/01/23 职场文书
Ajax实现三级联动效果
2021/10/05 Javascript
golang实现浏览器导出excel文件功能
2022/03/25 Golang