javascript闭包的高级使用方法实例


Posted in Javascript onJuly 04, 2013

扩展
Code:

var blogModule = (function (my) {
 my.AddPhoto = function () {
//添加内部代码
 };
 return my;
}(blogModule));

Say:
将自身传进方法,然后实现了方法的扩展,有点象零件组装啊
Code:
var blogModule = (function (my) {var oldAddPhotoMethod = my.AddPhoto;
 my.AddPhoto = function () {  // 重载方法,依然可通过oldAddPhotoMethod调用旧的方 }; return my;}(blogModule));

Say:
好处就是可以调用以前的方法。
克隆与继承
Code:
var blogModule = (function (old) { var my = {}, key; for (key in old) { if (old.hasOwnProperty(key)) { my[key] = old[key]; } } var oldAddPhotoMethod = old.AddPhoto; my.AddPhoto = function () { // 克隆以后,进行了重写,当然也可以继续调用oldAddPhotoMethod }; return my; } (blogModule));

Say:
简单的克隆实现
跨文件共享私有对象
Code:
var blogModule = (function (my) { var _private = my._private = my._private || {}, _seal = my._seal = my._seal || function () { delete my._private; delete my._seal; delete my._unseal; }, _unseal = my._unseal = my._unseal || function () { my._private = _private; my._seal = _seal; my._unseal = _unseal; }; return my; } (blogModule || {}));

Say:
blogModule._seal()上锁,_unseal() 开锁,实现内部变量的私有化。我认为这样实现并不是最好的,但是我们可以学习下这个开锁闭锁的功能。
Javascript 相关文章推荐
JavaScript Timer实现代码
Feb 17 Javascript
用jQuery打造TabPanel效果代码
May 22 Javascript
jQuery 1.5 源码解读 面向中高阶JSER
Apr 05 Javascript
JQuery的ON()方法支持的所有事件罗列
Feb 28 Javascript
JS制作类似选项卡切换的年历
Dec 03 Javascript
JavaScript数据结构学习之数组、栈与队列
May 02 Javascript
JavaScript实现创建自定义对象的常用方式总结
Jul 09 Javascript
vue单页应用在页面刷新时保留状态数据的方法
Sep 21 Javascript
简谈创建React Component的几种方式
Jun 15 Javascript
vue中使用vue-print.js实现多页打印
Mar 05 Javascript
vue实现输入框自动跳转功能
May 20 Javascript
JavaScript组合继承详解
Nov 07 Javascript
jquery获取被勾选的checked(选中)的那一行的3列和4列的值
Jul 04 #Javascript
JavaScript回调(callback)函数概念自我理解及示例
Jul 04 #Javascript
JS实现简单的Canvas画图实例
Jul 04 #Javascript
Jquery获取复选框被选中值的简单方法
Jul 04 #Javascript
jquery和javascript的区别(常用方法比较)
Jul 04 #Javascript
JS定时刷新页面及跳转页面的方法
Jul 04 #Javascript
浏览器打开层自动缓慢展开收缩实例代码
Jul 04 #Javascript
You might like
PHP swfupload图片上传的实例代码
2013/09/30 PHP
使用openssl实现rsa非对称加密算法示例
2014/01/24 PHP
thinkphp如何获取客户端IP
2015/11/03 PHP
分享10段PHP常用代码
2015/11/11 PHP
JavaScript 以对象为索引的关联数组
2010/05/19 Javascript
jQuery数组处理方法汇总
2011/06/20 Javascript
JS实现图片横向滚动效果示例代码
2013/09/04 Javascript
JavaScript中instanceof运算符的用法总结
2013/11/19 Javascript
JavaScript操作Cookie详解
2015/02/28 Javascript
jQuery选择器源码解读(七):elementMatcher函数
2015/03/31 Javascript
javascript去掉代码里面的注释
2015/07/24 Javascript
Jquery实现仿京东商城省市联动菜单
2015/11/19 Javascript
Js apply方法详解
2017/02/16 Javascript
JavaScript中最常见的三个面试题解析
2017/03/04 Javascript
node 命令方式启动修改端口的方法
2018/05/12 Javascript
使用webpack搭建react开发环境的方法
2018/05/15 Javascript
如何用JS模拟实现数组的map方法
2020/07/30 Javascript
解决ant design vue中树形控件defaultExpandAll设置无效的问题
2020/10/26 Javascript
python实现中文分词FMM算法实例
2015/07/10 Python
Python数据类型详解(三)元祖:tuple
2016/05/08 Python
Python+微信接口实现运维报警
2016/08/27 Python
Python抓取框架Scrapy爬虫入门:页面提取
2017/12/01 Python
实例讲解Python爬取网页数据
2018/07/08 Python
详解Python 装饰器执行顺序迷思
2018/08/08 Python
Python函数返回不定数量的值方法
2019/01/22 Python
python匿名函数的使用方法解析
2019/10/10 Python
详解opencv中画圆circle函数和椭圆ellipse函数
2019/12/27 Python
Python爬虫爬取杭州24时温度并展示操作示例
2020/03/27 Python
详解matplotlib中pyplot和面向对象两种绘图模式之间的关系
2021/01/22 Python
采用冷却技术的超自然舒适度:GhostBed床垫
2018/09/18 全球购物
金士达面试非笔试
2012/03/14 面试题
网络工程与软件技术毕业生自荐信
2013/09/24 职场文书
师范生自荐信
2013/10/27 职场文书
幼儿师范毕业生自荐信
2013/11/09 职场文书
男方家长婚礼致辞
2015/07/27 职场文书
Python爬取奶茶店数据分析哪家最好喝以及性价比
2022/09/23 Python