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 相关文章推荐
JQuery之拖拽插件实现代码
Apr 14 Javascript
捕获键盘事件(且兼容各浏览器)
Jul 03 Javascript
iframe的onreadystatechange事件在firefox下的使用
Apr 16 Javascript
Jquery对象和Dom对象的区别分析
Nov 20 Javascript
设计模式中的组合模式在JavaScript程序构建中的使用
May 18 Javascript
基于vue.js实现侧边菜单栏
Mar 20 Javascript
vue 2.0封装model组件的方法
Aug 03 Javascript
浅谈react+es6+webpack的基础配置
Aug 09 Javascript
JS实现简单随机3D骰子
Oct 24 Javascript
分享JS表单验证源码(带错误提示及密码等级)
Jan 05 Javascript
基于vue-draggable 实现三级拖动排序效果
Jan 10 Javascript
VUE实现自身整体组件销毁的示例代码
Jan 13 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
虫族 Zerg 热键控制
2020/03/14 星际争霸
PHP安全配置
2006/10/09 PHP
PHP-redis中文文档介绍
2013/02/07 PHP
PHP获取短链接跳转后的真实地址和响应头信息的方法
2014/07/25 PHP
详解WordPress中添加友情链接的方法
2016/05/21 PHP
DOM精简教程
2006/10/03 Javascript
用js实现的页面关键字密度查询代码
2007/12/27 Javascript
javascript写的日历类(基于pj)
2010/12/28 Javascript
jsp js鼠标移动到指定区域显示选项卡离开时隐藏示例
2013/06/14 Javascript
Jquery对select的增、删、改、查操作
2015/02/06 Javascript
jQuery中使用each处理json数据
2015/04/23 Javascript
JSON 的正确用法探讨:Pyhong、MongoDB、JavaScript与Ajax
2016/05/15 Javascript
微信小程序 WebSocket详解及应用
2017/01/21 Javascript
jQuery操作之效果详解
2017/05/19 jQuery
js中getBoundingClientRect的作用及兼容方案详解
2018/02/01 Javascript
Vue filter格式化时间戳时间成标准日期格式的方法
2018/09/16 Javascript
Element中的Cascader(级联列表)动态加载省\市\区数据的方法
2019/03/27 Javascript
Vue安装浏览器开发工具的步骤详解
2019/05/12 Javascript
Vue数据双向绑定底层实现原理
2019/11/22 Javascript
Python实现将不规范的英文名字首字母大写
2016/11/15 Python
Python IDLE清空窗口的实例
2018/06/25 Python
python 实现图片旋转 上下左右 180度旋转的示例
2019/01/24 Python
python开头的coding设置方法
2019/08/08 Python
详解使用django-mama-cas快速搭建CAS服务的实现
2019/10/30 Python
Python代码注释规范代码实例解析
2020/08/14 Python
Reebok俄罗斯官方网上商店:购买锐步运动服装和鞋子
2016/09/26 全球购物
东南亚排名第一的服务市场:kaodim
2019/03/28 全球购物
Trench London官方网站:高级风衣和意大利皮夹克
2020/07/11 全球购物
制冷与电控专业应届生求职信
2013/11/11 职场文书
2014乡镇党委副书记对照检查材料思想汇报
2014/10/09 职场文书
2014年体育工作总结
2014/11/24 职场文书
挂职锻炼个人总结
2015/03/05 职场文书
总经理岗位职责范本
2015/04/01 职场文书
2015年银行员工工作总结
2015/04/24 职场文书
2015年小学总务工作总结
2015/07/21 职场文书
windows11选中自动复制怎么开启? Win11自动复制所选内容的方法
2022/07/23 数码科技