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判断浏览器类型(是否为IE,Firefox,Opera浏览器)
Nov 22 Javascript
JS刷新当前页面的几种方法总结
Dec 24 Javascript
基于jquery的simpleValidate简易验证插件
Jan 31 Javascript
ExtJS4如何自动生成控制grid的列显示、隐藏的checkbox
May 02 Javascript
javascript二维数组转置实例
Jan 22 Javascript
JavaScript中的立即执行函数表达式介绍
Mar 15 Javascript
js实现table添加行tr、删除行tr、清空行tr的简单实例
Oct 15 Javascript
基于Bootstrap仿淘宝分页控件实现代码
Nov 07 Javascript
hovertree插件实现二级树形菜单(简单实用)
Dec 28 Javascript
JS中setTimeout和setInterval的最大延时值详解
Feb 13 Javascript
微信小程序使用image组件显示图片的方法【附源码下载】
Dec 08 Javascript
Vue.js实现可配置的登录表单代码详解
Mar 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/10/09 PHP
ThinkPHP的L方法使用简介
2014/06/18 PHP
javascript 动态加载 css 方法总结
2009/07/11 Javascript
利用javascript/jquery对上传文件格式过滤的方法
2009/07/25 Javascript
关于setInterval、setTimeout在jQuery中的使用注意事项
2011/09/28 Javascript
js Array对象的扩展函数代码
2013/04/24 Javascript
Nodejs+express+html5 实现拖拽上传
2014/08/08 NodeJs
jQuery淡入淡出元素让其效果更为生动
2014/09/01 Javascript
一种基于浏览器的自动小票机打印实现方案(js版)
2016/07/26 Javascript
浅析Javascript的自动分号插入(ASI)机制
2016/09/29 Javascript
分分钟玩转Vue.js组件
2016/10/25 Javascript
JS中判断null的方法分析
2016/11/21 Javascript
浅谈JavaScript中的apply/call/bind和this的使用
2017/02/26 Javascript
JavaScript之Map和Set_动力节点Java学院整理
2017/06/29 Javascript
Vue.js中extend选项和delimiters选项的比较
2017/07/17 Javascript
ES6正则表达式扩展笔记
2017/07/25 Javascript
vue的无缝滚动组件vue-seamless-scroll实例
2017/12/18 Javascript
解决vue项目刷新后,导航菜单高亮显示的位置不对问题
2019/11/01 Javascript
vue-calendar-component 封装多日期选择组件的实例代码
2020/12/04 Vue.js
[06:04]DOTA2英雄梦之声Vol19卓尔游侠
2014/06/20 DOTA
[07:55]2014DOTA2 TI正赛第三日 VG上演推进荣耀DKEG告别
2014/07/21 DOTA
[01:32]完美世界DOTA2联赛10月29日精彩集锦
2020/10/30 DOTA
Python元组操作实例分析【创建、赋值、更新、删除等】
2017/07/24 Python
浅谈Python处理PDF的方法
2017/11/10 Python
关于pytorch多GPU训练实例与性能对比分析
2019/08/19 Python
python命令 -u参数用法解析
2019/10/24 Python
详解在python操作数据库中游标的使用方法
2019/11/12 Python
使用python客户端访问impala的操作方式
2020/03/28 Python
Blue Nile台湾:钻石珠宝商,订婚首饰、结婚戒指和精品首饰
2017/11/24 全球购物
绘画设计学生的个人自我评价
2013/09/20 职场文书
优秀实习生感言
2014/03/01 职场文书
巾帼文明岗申报材料
2014/05/01 职场文书
奥巴马获胜演讲稿
2014/05/15 职场文书
2014年教师批评与自我批评思想汇报
2014/09/20 职场文书
2014年党风廉政工作总结
2014/12/03 职场文书
2016机关干部作风建设心得体会
2016/01/21 职场文书