装饰器模式:在不改变原对象的基础上,通过对其进行包装拓展(添加属性或者方法),保护原有功能的完整性
需要条件:原对象,新内容(属性/方法)
个人理解:重新实现一下,原对象的方法,在方法内容,先执行原对象的方法,再执行新内容

示例代码如下:

       //装饰者
/*
input:原对象
fn:新内容(属性或方法)
*/
var decorator = function (input,fn) {
//获取事件源
var input = document.getElementById(input);
//判断事件源,是否绑定某一事件
if(typeof input.onclick === 'function'){
//缓存事件源的原有回调函数
var oldClick = input.onclick;
//为事件源定义新的回调函数
input.onclick = function () {
//事件源,原有回调函数
oldClick();
//执行事件源新增回调函数
fn();
}
}
}

最新文章

  1. 服务治理要先于SOA
  2. 1001 数组中和等于K的数对 1090 3个数和为0
  3. Lua 学习笔记(十一)元表与元方法
  4. Windows Phone 8.1低功耗蓝牙开发-Nokia Treasure Tag
  5. POJ1014Dividing[多重背包可行性]
  6. python time模块
  7. python机器学习《回归 一》
  8. 必须知道的.NET FrameWork
  9. 《Python基础教程(第二版)》学习笔记 -> 第七章 更加抽象
  10. winfrom拷贝文件
  11. sublime Text3配置及快捷键、插件推荐总结
  12. Android_Training
  13. 项目整体说明及WBS练习
  14. 在CentOS上使用Jexus托管运行 ZKEACMS
  15. android ndk-build 编译静态库libxx.a 以及Android studio openssl 静态库配置(cmake)
  16. 05_python_字典
  17. openkm安装过程
  18. 使用Dom4解析xml
  19. mormot日志
  20. 分布式系统CAP定理

热门文章

  1. oc的属性
  2. 简明git教程(单人版本)
  3. Vim 插件管理及安装
  4. vue 项目初始化、mock数据以及安装less
  5. logging模块、shutil模块、subprocess模块、xml模块
  6. Co-prime HDU - 4135_容斥计数
  7. Android 将Android项目打包成aar文件
  8. Hadoop分布环境搭建步骤,及自带MapReduce单词计数程序实现
  9. Activiti 各个节点涉及的表
  10. [asp.net]ashx中session存入,aspx为null的原因(使用flash uploader)