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 跳转代码集合
Dec 03 Javascript
jQuery EasyUI 的EasyLoader功能介绍
Sep 12 Javascript
增强用户体验友好性之jquery easyui window 窗口关闭时的提示
Jun 22 Javascript
js原型链原理看图说明
Jul 07 Javascript
js禁止页面复制功能禁用页面右键菜单示例代码
Aug 29 Javascript
js实现的简洁网页滑动tab菜单效果代码
Aug 24 Javascript
jQuery实现鼠标悬停背景翻转的黑色导航菜单代码
Sep 14 Javascript
微信小程序 实战程序简易新闻的制作
Jan 09 Javascript
Angular 数据请求的实现方法
May 07 Javascript
JS中超越现实的匿名函数用法实例分析
Jun 21 Javascript
js实现的格式化数字和金额功能简单示例
Jul 30 Javascript
Vue实现点击显示不同图片的效果
Aug 10 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教程 变量定义
2009/10/23 PHP
让PHP开发者事半功倍的十大技巧小结
2010/04/20 PHP
php中处理mysql_fetch_assoc返回来的数组 不用foreach----echo
2011/05/04 PHP
php高级编程-函数-郑阿奇
2011/07/04 PHP
PHP错误处理函数register_shutdown_function使用示例
2017/07/03 PHP
laravel 根据不同组织加载不同视图的实现
2019/10/14 PHP
JS下拉框内容左右移动效果的具体实现
2013/07/10 Javascript
javascript批量修改文件编码格式的方法
2015/01/27 Javascript
jquery checkbox的相关操作总结
2016/10/17 Javascript
基于vue的fullpage.js单页滚动插件
2017/03/20 Javascript
详解用vue编写弹出框组件
2017/07/04 Javascript
详解bootstrap导航栏.nav与.navbar区别
2017/11/23 Javascript
Vuex 入门教程
2018/01/10 Javascript
Nodejs对postgresql基本操作的封装方法
2019/02/20 NodeJs
利用vue重构有赞商城的思路以及总结整理
2019/02/21 Javascript
详解JWT token心得与使用实例
2019/08/02 Javascript
Python升级提示Tkinter模块找不到的解决方法
2014/08/22 Python
使用url_helper简化Python中Django框架的url配置教程
2015/05/30 Python
Python判断字符串是否为字母或者数字(浮点数)的多种方法
2018/08/03 Python
使用virtualenv创建Python环境及PyQT5环境配置的方法
2019/09/10 Python
django迁移文件migrations的实现
2020/03/31 Python
Python爬虫抓取论坛关键字过程解析
2020/10/19 Python
天猫国际进口超市直营:官方直采,一站购齐
2017/12/11 全球购物
网上常见的一份Linux面试题(多项选择部分)
2014/09/09 面试题
环境科学专业大学生自荐信格式
2013/09/21 职场文书
个人简历自我评价八例
2013/10/31 职场文书
小学少先队活动方案
2014/02/18 职场文书
周年庆典主持词
2014/04/02 职场文书
租房协议书范本
2014/04/09 职场文书
百日安全生产活动总结
2014/07/05 职场文书
大学生党校培训心得体会
2014/09/11 职场文书
养成教育工作总结
2015/08/13 职场文书
大学生先进个人主要事迹材料
2015/11/04 职场文书
前端学习——JavaScript原生实现购物车案例
2021/03/31 Javascript
MongoDB数据库的安装步骤
2021/06/18 MongoDB
html,css,javascript是怎样变成页面的
2023/05/07 HTML / CSS