关于javascript的闭包、模块化以及单例模式
2016-05-15 21:46
363 查看
为什么放在一起?
模块化本身就自带闭包性质的体现。下面代码:<span style="white-space:pre"> </span>//定义可多次实例化的模块foo function foo () { console.log("foo run"); var num = 0; return { addNum: function () { num++; }, showNum: function () { console.log(num); } } } var bar = foo(); var zar = foo(); bar.addNum(); bar.showNum(); zar.showNum(); //使用IIFE的方式实例化模块tar,单例模式 //IIFE会建立新作用域。这里因为在运行结束后返回了一个含有该作用域引用的函数,形成闭包 var tar = (function () { console.log("tar run"); var num = 0; return { addNum: function () { num++; }, showNum: function () { console.log(num); } } })() tar.showNum();
什么是闭包呢?看下图:
相关文章推荐
- ajax&&json学习笔记
- ajax&&json学习笔记
- 表单密码强度监测判断JS代码特效
- Angular JS入门
- 简单谈谈为啥$this->registerJs没有注册js的问题
- BZOJ2208: [Jsoi2010]连通数
- js学习四-RegExp正则表达式
- 利用随机数随机生成指定位数的字符串
- javascript事件编程
- Promise/commonJS/AMD学习笔记
- JS移动客户端--触屏滑动事件
- JSP page指令详解
- 第一个JSP程序
- [安卓开发]快递查询demo|Json解析|条形码扫描|物流布局|历史记录
- 自己做的萌萌哒的js宠物挂件~
- 使用脚本排除bug疑问
- js学习三-日期Date
- 把JavaScript的变量赋值给php的变量
- 当图片验证码遇上JSP
- 当图片验证码遇上JSP