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 相关文章推荐
用JavaScript页面不刷新时全选择,全删除(GridView)
Apr 14 Javascript
Jquery之美中不足小结
Feb 16 Javascript
Ajax 数据请求的简单分析
Apr 05 Javascript
JavaScript1.6数组新特性介绍以及JQuery的几个工具方法
Dec 06 Javascript
node.js中的http.get方法使用说明
Dec 14 Javascript
js实现不重复导入的方法
Mar 02 Javascript
angular6开发steps步骤条组件
Jul 04 Javascript
关于ligerui子页面关闭后,父页面刷新,重新加载的方法
Sep 27 Javascript
vue使用高德地图点击下钻上浮效果的实现思路
Oct 12 Javascript
ES5 模拟 ES6 的 Symbol 实现私有成员功能示例
May 06 Javascript
微信小程序实现点击生成随机验证码
Sep 09 Javascript
详解 TypeScript 枚举类型
Nov 02 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
PHP中10个不常见却非常有用的函数
2010/03/21 PHP
PHP 登录记住密码实现思路
2013/05/07 PHP
php实现的日历程序
2015/06/18 PHP
同一个表单 根据要求递交到不同页面的实现方法小结
2009/08/05 Javascript
加载远程图片时,经常因为缓存而得不到更新的解决方法(分享)
2013/06/26 Javascript
使用js获取地址栏中传递的值
2013/07/02 Javascript
jquery解析xml字符串简单示例
2014/04/11 Javascript
判断字符串的长度(优化版)中文占两个字符
2014/10/30 Javascript
分享网页检测摇一摇实例代码
2016/01/14 Javascript
jQuery实现返回顶部功能
2016/02/23 Javascript
使用jquery.form.js实现图片上传的方法
2016/05/05 Javascript
浅析Javascript的自动分号插入(ASI)机制
2016/09/29 Javascript
纯JS打造网页中checkbox和radio的美化效果
2016/10/13 Javascript
Bootstrap源码解读导航条(7)
2016/12/23 Javascript
详解JS中的立即执行函数
2017/02/24 Javascript
vue2.0安装style/css loader的方法
2018/03/14 Javascript
JQuery模拟实现网页中自定义鼠标右键菜单功能
2018/11/14 jQuery
利用Vue-draggable组件实现Vue项目中表格内容的拖拽排序
2019/06/07 Javascript
layui表格分页 记录勾选的实例
2019/09/02 Javascript
微信小程序 textarea 层级过高问题简单解决方案
2019/10/14 Javascript
浅谈Vue组件单元测试究竟测试什么
2020/02/05 Javascript
VUE实时监听元素距离顶部高度的操作
2020/07/29 Javascript
[26:40]DOTA2上海特级锦标赛A组资格赛#1 Secret VS MVP.Phx第一局
2016/02/25 DOTA
Python 文件操作实现代码
2009/10/07 Python
Python实现压缩与解压gzip大文件的方法
2016/09/18 Python
简单了解django orm中介模型
2019/07/30 Python
Canvas引入跨域的图片导致toDataURL()报错的问题的解决
2018/09/19 HTML / CSS
【魔兽争霸3重制版】原版画面与淬火MOD画面对比
2021/03/26 魔兽争霸
工商管理系学生的自我评价分享
2013/11/29 职场文书
大学军训感言1000字
2014/02/25 职场文书
和谐社区口号
2014/06/19 职场文书
学校领导干部民主生活会整改方案
2014/09/29 职场文书
群众路线剖析材料范文
2014/10/09 职场文书
自主招生专家推荐信
2015/03/26 职场文书
介绍信范文大全
2015/05/07 职场文书
回复函范文
2015/07/14 职场文书