关于 Javascript 的闭包
来源:互联网 发布:阿里云 iaas paas 编辑:程序博客网 时间:2024/06/06 00:36
w3schools 上,对闭包解释的比较清楚。 — 它相当于让 function 有了自己的私有变量。
其例子是“计数器困境”,现引用如下。
计数器困境
首先 javascript 没有块作用域的概念。只有 global 和 local 的概念。分别对应于网页范围和函数范围。
如果想用 javascript 实现一个计数器,可以:
var counter = 0;function add() { counter += 1;}
但问题是,谁都可以改这个 counter, 郁闷。
改成普通的函数呢? 似乎也不行。下面的函数不会有记忆,counter 总是1
function add() { var coutner = 0; counter += 1;}
怎么办呢? closure 来帮助。
// closure 的例子var add = (function () { var counter = 0; return function () {return counter += 1;}})();
这里用了一个立即执行的函数 (IIFE),执行一个匿名函数。该匿名函数返回一个带有闭包的函数。每次调用把 counter 加 1
0 0
- 关于JavaScript的闭包
- 关于 Javascript 的闭包
- 关于javascript的闭包
- JavaScript关于闭包
- JavaScript关于闭包
- JavaScript 关于闭包的思考 总结
- 关于Javascript闭包的理解
- JavaScript 关于闭包的思考 总结
- 关于 Javascript 的闭包理解
- 关于javascript闭包的一些总结
- 关于JavaScript闭包的理解
- 关于javascript闭包的理解
- 关于javascript中的闭包
- javaScript 关于闭包问题
- 关于Javascript中的闭包
- 关于JavaScript闭包学习
- 关于JavaScript闭包的个人思考与应用
- 关于JavaScript函数闭包的简单解释
- Andorid Unable to execute dex: Multiple dex files define Lorg/apache/commons/collections/Buffer
- 64位Sql Server 2005开发版于64位Windows7旗舰版 安装过程
- ffmpeg:视频解码以及解码后数据的编码
- 从源码注释看 Activity 的生命周期方法
- ETL利器Kettle实战应用
- 关于 Javascript 的闭包
- Gson解析泛型
- spring注解( @Autowired、@Qualifier、@Resource、@PostConstruct、@PreDestroy、 @Component、@Scope)-描述的比较清楚
- ZXing——二维码扫描案例及横竖屏切换问题
- mybatis模糊查询
- java泛型类
- python练习:逆波兰,冒泡排序,快速排序
- Tomcat内存溢出的三种情况及解决办法分析
- 游标cursor使用