Skip to content

Latest commit

 

History

History
28 lines (22 loc) · 1.02 KB

装饰着模式.md

File metadata and controls

28 lines (22 loc) · 1.02 KB

JavaScript设计模式之装饰着模式

概念

装饰着模式,在不改变源对象的基础上,通过对其进行包装拓展使原有对象可以满足用户的更复杂需求

代码演示

这里我拿给输入框添加事件举例

var decorator = function(input ,fn) {
  //获取时间源
  var input = document.getElementById(input);
  if(typeof input.onclick === 'function'){
      //缓存事件源原有的回调函数
      var oldClickFn = input.onclick;
      input.onclick = function (ev) { 
          oldClickFn();
          fn();
       }
  }else{
      input.onclick = fn;
  }
}

装饰着模式很简单,就是对原有对象的属性和方法的添加。相比于之前说的适配器模式是对原有对象的适配,添加的方法和原有的方法功能上大致相似。但是装饰着提供的方法和原有方法功能项则有一定的区别,且不需要去了解原有对象的功能。只要原封不动的去使用就行。不需要知道具体的实现细节。