此博客是本人从学生时代开始做笔记所用, 部分是工作所遇问题,做填坑笔记,部分闲来查阅资料,加上自己的理解所总结的学习笔记, 常忙得不可开交,若漏了资料来源,望通知~ 前路漫漫,写点东西告诉自己正在一点点进步,而不要迷失于繁忙。

js 职责链模式简要介绍

定义: 使多个对象都有机会处理请求,避免发送者与接受者之间的耦合关系,将对象连成一条链,沿着这条链传递请求,直到有一个对象处理它

如何把对象串联起来?解决方法通常是将另一个对象作为新创建对象的参数,称为继承者。

如何把请求传递下去?通常在其原型上定义同名请求方法,在此方法里调用继承者。

极简示例如下:

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

 

posted @ 2017-09-08 14:56  炎泽  阅读(113)  评论(0编辑  收藏  举报