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图片轮换效果的函数
Sep 28 Javascript
将input file的选择的文件清空的两种解决方案
Oct 21 Javascript
JSON相关知识汇总
Jul 03 Javascript
jQuery如何使用自动触发事件trigger
Nov 29 Javascript
JavaScript中两个字符串的匹配
Jun 08 Javascript
Vue form 表单提交+ajax异步请求+分页效果
Apr 22 Javascript
swiper动态改变滑动内容的实现方法
Jan 17 Javascript
JS运动特效之完美运动框架实例分析
Jan 24 Javascript
vue-rx的初步使用教程
Sep 21 Javascript
Javascript中绑定click事件的四种方式介绍
Oct 26 Javascript
JS实现点击发送验证码 xx秒后重新发送功能
Jul 30 Javascript
javascript如何使用函数random来实现课堂随机点名方法详解
Jul 28 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版自动生成文章摘要
2008/07/23 PHP
PHP小教程之实现链表
2014/06/09 PHP
php实现扫描二维码根据浏览器类型访问不同下载地址
2014/10/15 PHP
php去除二维数组的重复项方法
2015/11/03 PHP
浅谈PHP的数据库接口和技术
2016/12/09 PHP
PHP单例模式定义与使用实例详解
2017/02/06 PHP
JQuery魔力之$("tagName")与selector
2012/03/05 Javascript
JS中Date日期函数中的参数使用介绍
2014/01/02 Javascript
JavaScript中的splice()方法使用详解
2015/06/09 Javascript
Jquery中巧用Ajax的beforeSend方法
2016/01/20 Javascript
JS组件系列之使用HTML标签的data属性初始化JS组件
2016/09/14 Javascript
微信小程序 网络API 上传、下载详解
2016/11/09 Javascript
JS回调函数简单用法示例
2017/02/09 Javascript
javascript自执行函数
2017/02/10 Javascript
vue动态组件实现选项卡切换效果
2017/03/08 Javascript
Angular 2使用路由自定义弹出组件toast操作示例
2019/05/10 Javascript
JavaScript JSON数据处理全集(小结)
2019/08/15 Javascript
JS中的变量作用域(console版)
2020/07/18 Javascript
javascript实现移动端上传图片功能
2020/08/18 Javascript
react-native 实现购物车滑动删除效果的示例代码
2021/01/15 Javascript
Python的Bottle框架中实现最基本的get和post的方法的教程
2015/04/30 Python
Python 常用的安装Module方式汇总
2017/05/06 Python
django反向解析URL和URL命名空间的方法
2018/06/05 Python
python 图片去噪的方法示例
2019/07/09 Python
python 5个顶级异步框架推荐
2020/09/09 Python
英国著名的药妆网站:Escentual
2016/07/29 全球购物
加拿大高尔夫超市:Golf Town
2018/01/12 全球购物
TUMI新加坡官网:国际领先的商旅箱包品牌
2019/01/12 全球购物
财务部出纳岗位职责
2013/12/22 职场文书
学校宣传标语
2014/06/18 职场文书
2014年人事专员工作总结
2014/11/19 职场文书
订货会邀请函
2015/01/31 职场文书
婚姻出轨保证书
2015/05/08 职场文书
初中政治教学反思
2016/02/23 职场文书
使用这 6个Vue加载动画库来减少我们网站的跳出率
2021/05/18 Vue.js
Pytorch distributed 多卡并行载入模型操作
2021/06/05 Python