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 相关文章推荐
JS类中定义原型方法的两种实现的区别
Mar 08 Javascript
JS+css 图片自动缩放自适应大小
Aug 08 Javascript
js实现jquery的offset()方法实例
Jan 10 Javascript
jQuery获得document和window对象宽度和高度的方法
Mar 25 Javascript
JavaScript中实现无缝滚动、分享到侧边栏实例代码
Apr 06 Javascript
JS实现左右无缝轮播图代码
May 01 Javascript
javascript之Array 数组对象详解
Jun 07 Javascript
JS返回只包含数字类型的数组实例分析
Dec 16 Javascript
ionic2中使用自动生成器的方法
Mar 04 Javascript
Vue filter介绍及详细使用
Apr 04 Javascript
vue项目创建步骤及路由router
Jan 14 Javascript
使用Canvas绘制一个游戏人物属性图
Mar 25 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批量生成静态HTML的简单原理和方法
2014/04/20 PHP
yii添删改查实例
2015/11/16 PHP
thinkPHP中session()方法用法详解
2016/12/08 PHP
js文件中调用js的实现方法小结
2009/10/23 Javascript
当自定义数据属性为json格式字符串时jQuery的data api问题探讨
2013/02/18 Javascript
Javascript 鼠标移动上去 滑块跟随效果代码分享
2013/11/23 Javascript
Javascript加载速度慢的解决方案
2014/03/11 Javascript
JavaScript fontcolor方法入门实例(按照指定的颜色来显示字符串)
2014/10/17 Javascript
JavaScript中的this到底是什么(一)
2015/12/09 Javascript
JS获取CSS样式(style/getComputedStyle/currentStyle)
2016/01/19 Javascript
js实现的鼠标滚轮滚动切换页面效果(类似360默认页面滚动切换效果)
2016/01/27 Javascript
Express与NodeJs创建服务器的两种方法
2017/02/06 NodeJs
Node.js利用js-xlsx处理Excel文件的方法详解
2017/07/05 Javascript
JavaScript30 一个月纯 JS 挑战中文指南(英文全集)
2017/07/23 Javascript
基于Vue2.X的路由和钩子函数详解
2018/02/09 Javascript
bootstrap与pagehelper实现分页效果
2018/12/29 Javascript
async/await优雅的错误处理方法总结
2019/01/30 Javascript
JS集合set类的实现与使用方法示例
2019/02/01 Javascript
JS检测浏览器开发者工具是否打开的方法详解
2020/10/02 Javascript
[54:53]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第二场
2014/05/23 DOTA
python实现逆波兰计算表达式实例详解
2015/05/06 Python
Flask框架中密码的加盐哈希加密和验证功能的用法详解
2016/06/07 Python
pandas 数据实现行间计算的方法
2018/06/08 Python
Python GUI编程完整示例
2019/04/04 Python
使用Python OpenCV为CNN增加图像样本的实现
2019/06/10 Python
Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式
2020/05/25 Python
Html5中localStorage存储JSON数据并读取JSON数据的实现方法
2017/02/13 HTML / CSS
美国LOGO设计公司:The Logo Company
2018/07/16 全球购物
大学生创业计划书的格式要求
2013/12/29 职场文书
小学毕业家长寄语
2014/01/19 职场文书
十佳青年个人事迹材料
2014/01/28 职场文书
业务员的岗位职责
2014/03/15 职场文书
三方合作协议书范本
2014/04/18 职场文书
机关作风建设自查报告
2014/10/22 职场文书
今日说法观后感
2015/06/08 职场文书
Python编程编写完善的命令行工具
2021/09/15 Python