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 回车换行处理的办法及replace方法应用
Jan 24 Javascript
用js实现in_array的方法
Nov 05 Javascript
node.js中的fs.symlinkSync方法使用说明
Dec 15 Javascript
javascript检查浏览器是否已经启用XX功能
Jul 10 Javascript
巧用jQuery选择器提高写表单效率的方法
Aug 19 Javascript
微信小程序实现滑动删除效果
May 19 Javascript
Angular项目如何升级至Angular6步骤全纪录
Sep 03 Javascript
详解关于微信setData回调函数中的坑
Feb 18 Javascript
详解VUE Element-UI多级菜单动态渲染的组件
Apr 25 Javascript
浅析vue-cli3配置webpack-bundle-analyzer插件【推荐】
Oct 23 Javascript
JS 数组和对象的深拷贝操作示例
Jun 06 Javascript
VUE实时监听元素距离顶部高度的操作
Jul 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
一个用mysql_odbc和php写的serach数据库程序
2006/10/09 PHP
php连接mssql数据库的几种方法
2013/02/21 PHP
thinkphp中html:list标签传递多个参数实例
2014/10/30 PHP
php实现中文字符截取防乱码方法汇总
2015/04/29 PHP
Yii实现文章列表置顶功能示例
2016/10/18 PHP
统计PHP目录中的文件数方法
2019/03/05 PHP
nicejforms——美化表单不用愁
2007/02/20 Javascript
教你如何解密js/vbs/vbscript加密的编码异处理小结
2008/06/25 Javascript
js 屏蔽鼠标右键脚本附破解方法
2009/12/03 Javascript
jQuery的初始化与对象构建之浅析
2011/04/12 Javascript
jquery中focus()函数实现当对象获得焦点后自动把光标移到内容最后
2013/09/29 Javascript
跟我学Node.js(四)---Node.js的模块载入方式与机制
2014/06/04 Javascript
下雪了 javascript实现雪花飞舞
2020/08/02 Javascript
自制简易打赏功能的实例
2017/09/02 Javascript
ztree加载完成后显示勾选节点的实现代码
2018/10/22 Javascript
JS数组扁平化、去重、排序操作实例详解
2020/02/24 Javascript
基于JS实现快速读取TXT文件
2020/08/25 Javascript
[02:12]探秘2016国际邀请赛中国区预选赛选手房间
2016/06/25 DOTA
Python中read()、readline()和readlines()三者间的区别和用法
2017/07/30 Python
python和pygame实现简单俄罗斯方块游戏
2021/02/19 Python
python对数组进行排序,并输出排序后对应的索引值方式
2020/02/28 Python
python UDF 实现对csv批量md5加密操作
2021/01/01 Python
澳大利亚牛仔裤商店:Just Jeans
2016/10/13 全球购物
中国领先的专业家电网购平台:国美在线
2016/12/25 全球购物
若干个Java基础面试题
2015/05/19 面试题
质检员岗位职责
2013/12/17 职场文书
职业生涯规划怎么写
2013/12/29 职场文书
美容院营销方案
2014/03/05 职场文书
《学棋》教后反思
2014/04/14 职场文书
2014年超市员工工作总结
2014/11/18 职场文书
2015年手术室工作总结
2015/05/11 职场文书
2015年见习期个人工作总结
2015/05/28 职场文书
职工趣味运动会开幕词
2016/03/04 职场文书
准备去美国留学,那么大学申请文书应该怎么写?
2019/08/12 职场文书
vue整合百度地图显示指定地点信息
2022/04/06 Vue.js
PYTHON基于Pyecharts绘制常见的直角坐标系图表
2022/04/28 Python