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 相关文章推荐
IE 条件注释详解总结(附实例代码)
Aug 29 Javascript
Web前端设计模式  制作漂亮的弹出层
Oct 29 Javascript
通过js来制作复选框的全选和不选效果
May 22 Javascript
Javascript刷新窗口方法小结
Oct 21 Javascript
dedecms页面如何获取会员状态的实例代码
Mar 15 Javascript
JavaScript脚本语言是什么_动力节点Java学院整理
Jun 26 Javascript
Vue 2.5 Level E 发布了: 新功能特性一览
Oct 24 Javascript
vue2.0 自定义 饼状图 (Echarts)组件的方法
Mar 02 Javascript
jQuery实现条件搜索查询、实时取值及升降序排序的方法分析
May 04 jQuery
详解Vue demo实现商品列表的展示
May 07 Javascript
vue柱状进度条图像的完美实现方案
Aug 26 Javascript
在layui框架中select下拉框监听更改事件的例子
Sep 20 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 fputcsv命令 写csv文件遇到的小问题(多维数组连接符)
2011/05/24 PHP
php获取今日开始时间和结束时间的方法
2017/02/27 PHP
用Javscript实现表单复选框的全选功能
2007/05/25 Javascript
ie 调试javascript的工具
2009/04/29 Javascript
JQuery实现的在新窗口打开链接的方法小结
2010/04/22 Javascript
js中将具有数字属性名的对象转换为数组
2011/03/06 Javascript
javascript数字格式化通用类 accounting.js使用
2012/08/24 Javascript
javascript强制点击广告的方法
2015/02/06 Javascript
jquery判断input值不为空的方法
2016/06/05 Javascript
AngularJS中$http服务常用的应用及参数
2016/08/22 Javascript
微信小程序 form组件详解
2016/10/25 Javascript
JS触摸屏网页版仿app弹窗型滚动列表选择器/日期选择器
2016/10/30 Javascript
node+express制作爬虫教程
2016/11/11 Javascript
Vue.js在使用中的一些注意知识点
2017/04/29 Javascript
vue技术分享之你可能不知道的7个秘密
2018/04/09 Javascript
Vue实现6位数密码效果
2018/08/18 Javascript
Vuex实现数据共享的方法
2019/12/20 Javascript
[03:56]显微镜下的DOTA2第十一期——鬼畜的死亡先知播音员
2014/06/23 DOTA
[33:42]LGD vs OG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[01:18:35]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第一场 1月29日
2021/03/11 DOTA
日常整理python执行系统命令的常见方法(全)
2015/10/22 Python
python实现批量监控网站
2016/09/09 Python
PYTHON实现SIGN签名的过程解析
2019/10/28 Python
10个Python面试常问的问题(小结)
2019/11/20 Python
纯css3实现图片翻牌特效
2015/03/10 HTML / CSS
美国顶级水上运动专业店:Marine Products
2018/04/15 全球购物
运动鞋、足球鞋和慕尼黑球衣:Sport Münzinger
2019/08/26 全球购物
在校大学生的职业生涯规划书
2014/03/14 职场文书
教师党员承诺书
2014/03/25 职场文书
商铺租赁意向书
2014/04/01 职场文书
基层干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
2014年财务部工作总结
2014/11/11 职场文书
敲诈同学钱财检讨书范文
2014/11/18 职场文书
酒店员工管理制度
2015/08/05 职场文书
写好求职信的技巧解密
2019/05/14 职场文书
react合成事件与原生事件的相关理解
2021/05/13 Javascript