首先定义一个构造函数,叫Observe,给构造函数添加一个属性dep,用于收集所有的订阅者,并在原型上添加一个patch方法,用于发布信息。
在这里我想解释一个小概念:所谓的订阅者(观察者),其实就是我们接到数据后进行处理的函数,Observe中的dep属性,收集的就是这一堆回调函数。
因此,我们的patch方法很简单,就是遍历dep中收集的回调函数(订阅者/观察者),并依次调用。
为了方便我们任何一个函数都可以做为观察者使用,直接在Function构造函数的原型上添加两个方法,一个叫subscribe(订阅),一个叫unsubscribe(取消订阅)。