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 相关文章推荐
FormValidate 表单验证功能代码更新并提供下载
Aug 23 Javascript
Javascript 网页黑白效果实现代码(兼容IE/FF等)
Apr 23 Javascript
从盛大通行证上摘下来的身份证验证js代码
Jan 11 Javascript
用javascript删除当前行,添加行(示例代码)
Nov 25 Javascript
js获得页面的高度和宽度的方法
Feb 23 Javascript
wangEditor编辑器失去焦点后仍然可以在原位置插入图片分析
May 06 Javascript
JS+CSS实现仿支付宝菜单选中效果代码
Sep 25 Javascript
纯JavaScript代码实现移动设备绘图解锁
Oct 16 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(二)
May 17 Javascript
JS简单实现自定义右键菜单实例
May 31 Javascript
你或许不知道的一些npm实用技巧
Jul 04 Javascript
在Vue中使用antv的示例代码
Jun 29 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
详解:――如何将图片储存在数据库里
2006/12/05 PHP
thinkphp 多表 事务详解
2013/06/17 PHP
PHP获取某个月最大天数(最后一天)的方法
2015/07/29 PHP
php邮箱地址正则表达式验证
2015/11/13 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
尽可能写"友好"的"Javascript"代码
2007/01/09 Javascript
JavaScript对象和字串之间的转换实例探讨
2013/04/21 Javascript
angular中使用路由和$location切换视图
2015/01/23 Javascript
AngularJS基础学习笔记之控制器
2015/05/10 Javascript
JavaScript记录光标在编辑器中位置的实现方法
2016/04/22 Javascript
Markdown与Bootstrap相结合实现图片自适应属性
2016/05/04 Javascript
js 自带的sort() 方法全面了解
2016/08/16 Javascript
Bootstrap表单制作代码
2017/03/17 Javascript
微信小程序 本地数据读取实例
2017/04/27 Javascript
详解vue-router 2.0 常用基础知识点之router.push()
2017/05/10 Javascript
Vue Socket.io源码解读
2018/02/07 Javascript
使用live-server快速搭建本地服务器+自动刷新的方法
2018/03/09 Javascript
每天学点Vue源码之vm.$mount挂载函数
2019/03/11 Javascript
js实现简单贪吃蛇游戏
2020/05/15 Javascript
JS sort方法基于数组对象属性值排序
2020/07/10 Javascript
[40:05]LGD vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
pyqt 实现QlineEdit 输入密码显示成圆点的方法
2019/06/24 Python
pytorch 更改预训练模型网络结构的方法
2019/08/19 Python
python实现图像全景拼接
2020/03/27 Python
Python 基于jwt实现认证机制流程解析
2020/06/22 Python
人力资源管理专业毕业生自我评价
2013/09/21 职场文书
如何打造一封优秀的留学推荐信
2014/01/25 职场文书
关于运动会的稿件
2014/02/02 职场文书
《在家里》教后反思
2014/03/01 职场文书
高中生评语大全
2014/04/25 职场文书
晚自修旷课检讨书怎么写
2014/11/17 职场文书
2014年保育员工作总结
2014/12/02 职场文书
云冈石窟导游词
2015/02/04 职场文书
工程质检员岗位职责
2015/04/08 职场文书
婚庆司仪开场白
2015/05/29 职场文书
医院消毒隔离制度
2015/08/05 职场文书