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的history历史记录插件
Dec 11 Javascript
在父页面得到zTree已选中的节点的方法
Feb 12 Javascript
ECMAScript6块级作用域及新变量声明(let)
Jun 12 Javascript
jQuery常用且重要方法汇总
Jul 13 Javascript
jQuery添加和删除输入文本框标签代码
May 20 Javascript
正则表达式,替换所有HTML标签的简单实例
Nov 28 Javascript
微信小程序实战之自定义模态弹窗(8)
Apr 18 Javascript
js实现带进度条提示的多视频上传功能
Dec 13 Javascript
基于Vue实现页面切换左右滑动效果
Jun 29 Javascript
Mac中安装nvm的教程分享
Dec 11 Javascript
webpack构建的详细流程探底
Jan 08 Javascript
微信小程序单选radio及多选checkbox按钮用法示例
Apr 30 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
ajax实现无刷新分页(php)
2010/07/18 PHP
PHP 函数执行效率的小比较
2010/10/17 PHP
PHP编译安装时常见错误解决办法
2015/05/28 PHP
php通过文件头判断格式的方法
2016/05/28 PHP
PHP中读取文件的几个方法总结(推荐)
2016/06/03 PHP
php操作redis数据库常见方法实例总结
2020/02/20 PHP
javascript与asp.net(c#)互相调用方法
2009/12/13 Javascript
IE6、IE7中获取Button元素的值的bug说明
2011/08/28 Javascript
javascript之querySelector和querySelectorAll使用说明
2011/10/09 Javascript
用jquery模仿的a的title属性(兼容ie6/7)
2013/01/21 Javascript
Js 回车换行处理的办法及replace方法应用
2013/01/24 Javascript
javascript 动态创建表格
2015/01/08 Javascript
JS实现当前页居中分页效果的方法
2015/06/18 Javascript
JS实现鼠标滑过折叠与展开菜单效果代码
2015/09/06 Javascript
js从输入框读取内容,比较两个数字的大小方法
2017/03/13 Javascript
Node.js模拟发起http请求从异步转同步的5种用法
2018/09/26 Javascript
基于vue2.0实现仿百度前端分页效果附实现代码
2018/10/30 Javascript
Vue实现移动端页面切换效果【推荐】
2018/11/13 Javascript
解决jquery validate 验证不通过后验证正确的信息仍残留在label上的方法
2019/08/27 jQuery
vue-cli设置css不生效的解决方法
2020/02/07 Javascript
JS PHP字符串截取函数实现原理解析
2020/08/29 Javascript
DataFrame中去除指定列为空的行方法
2018/04/08 Python
Python小白必备的8个最常用的内置函数(推荐)
2019/04/03 Python
python基于celery实现异步任务周期任务定时任务
2019/12/30 Python
使用css3和jquery实现可伸缩搜索框
2014/02/12 HTML / CSS
几个CSS3的flex弹性盒模型布局的简单例子演示
2016/05/12 HTML / CSS
解释一下ruby中的特殊方法与特殊类
2013/02/26 面试题
大学生毕业自我鉴定范文
2013/09/19 职场文书
中国好声音华少广告词
2014/03/17 职场文书
2014光棍节大学生联谊活动方案
2014/10/10 职场文书
中班教师个人总结
2015/02/05 职场文书
检讨书怎么写
2015/05/07 职场文书
团队拓展训练心得体会
2016/01/12 职场文书
2016道德模范先进事迹材料
2016/02/26 职场文书
pycharm2021激活码使用教程(永久激活亲测可用)
2021/03/30 Python
一篇文章搞懂python混乱的切换操作与优雅的推导式
2021/08/23 Python