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 相关文章推荐
客户端静态页面玩分页
Jun 26 Javascript
jQuery 无限级菜单的简单实例
Feb 21 Javascript
javascript将浮点数转换成整数的三个方法
Jun 23 Javascript
JavaScript中遍历对象的property的3种方法介绍
Dec 30 Javascript
Bootstrap3制作自己的导航栏
May 12 Javascript
百度搜索框智能提示案例jsonp
Nov 28 Javascript
JavaScript实现左右下拉框动态增删示例
Mar 09 Javascript
Angular中的ng-template及angular 使用ngTemplateOutlet 指令的方法
Aug 08 Javascript
微信小程序实现星星评价效果
Nov 02 Javascript
如何在Node和浏览器控制台中打印彩色文字
Jan 09 Javascript
js实现贪吃蛇游戏 canvas绘制地图
Sep 09 Javascript
详解如何使用Node.js实现热重载页面
May 06 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
默默小谈PHP&MYSQL分页原理及实现
2007/01/02 PHP
PHP获取文件行数的方法
2015/06/10 PHP
在次封装easyui-Dialog插件实现代码
2010/11/14 Javascript
JavaScript+CSS控制打印格式示例介绍
2014/01/07 Javascript
javascript使用正则表达式检测IP地址
2014/12/03 Javascript
javascript实现图片循环渐显播放的方法
2015/02/24 Javascript
JS实现状态栏跑马灯文字效果代码
2015/10/24 Javascript
JavaScript中eval函数的问题
2016/01/31 Javascript
简单讲解jQuery中的子元素过滤选择器
2016/04/18 Javascript
node+experss实现爬取电影天堂爬虫
2016/11/20 Javascript
微信小程序 安全包括(框架、功能模块、账户使用)详解
2017/01/16 Javascript
vue.js 获取当前自定义属性值
2017/06/01 Javascript
jQuery常见面试题之DOM操作详析
2017/07/05 jQuery
jQuery实现的简单前端搜索功能示例
2017/10/28 jQuery
微信小程序中吸底按钮适配iPhone X方案
2017/11/29 Javascript
[06:44]2018DOTA2亚洲邀请赛4.5 SOLO赛 MidOne vs Sumail
2018/04/06 DOTA
[00:34]拔城逐梦,热血永恒!2020(秋)完美世界城市挑战赛报名开启
2020/10/09 DOTA
Python字符串处理实现单词反转
2017/06/14 Python
Python3实现发送QQ邮件功能(html)
2017/12/15 Python
python 拷贝特定后缀名文件,并保留原始目录结构的实例
2018/04/27 Python
如何实现删除numpy.array中的行或列
2018/05/08 Python
python函数定义和调用过程详解
2020/02/09 Python
Python开发企业微信机器人每天定时发消息实例
2020/03/17 Python
Python判断字符串是否为合法标示符操作
2020/09/03 Python
Python实现哲学家就餐问题实例代码
2020/11/09 Python
Fresh馥蕾诗英国官网:法国LVMH集团旗下高端天然护肤品牌
2018/11/01 全球购物
迪斯尼假期(欧洲、中东及非洲):Disney Holidays EMEA
2021/02/15 全球购物
校园创业策划书
2014/01/14 职场文书
中医临床专业自我鉴定范文
2014/01/15 职场文书
财务总监管理职责范文
2014/03/09 职场文书
员工廉洁自律承诺书
2014/05/26 职场文书
2014年服务行业工作总结
2014/11/18 职场文书
同学聚会通知书
2015/04/20 职场文书
毕业班工作总结
2015/08/10 职场文书
win10搭建配置ftp服务器的方法
2022/08/05 Servers