定义: 使多个对象都有机会处理请求,避免发送者与接受者之间的耦合关系,将对象连成一条链,沿着这条链传递请求,直到有一个对象处理它。
如何把对象串联起来?解决方法通常是将另一个对象作为新创建对象的参数,称为继承者。
如何把请求传递下去?通常在其原型上定义同名请求方法,在此方法里调用继承者。
极简示例如下:
function handler(s){ this.successor= s || null } handler.prototype.handle= function(){ if(this.successor){ this.successor.handle() } } var o1= new handler() o1.handle= function(){ console.log('o1') } var o2= new handler(o1) o2.handle() //o2没有此方法,讲给o1