发布与订阅代码实现
1、实现思路
1、绑定自定义事件:
首先需要一个对象,用来保存绑定的方法,将需要执行的方法加入该对象中
2、触发自定义事件:
运行对象中指定的绑定对象
3、运行一次:
修改执行的方法,将其绑定为只要执行就解除绑定的方法
4、解绑方法:
从缓存对象中删除该类型的方法
2、代码实现
function Event() {
this.cache = {}
}
Event.prototype.on = function(type,handle) {
if(this.cache[type]) {
this.cache[type].push(handle)
} else{
this.cache[type] = [handle]
}
}
Event.prototype.emmit = function() {
//
let type = arguments[0]
let params = [].slice.call(arguments,1)
if(this.cache[type]) {
let len = this.cache[type].length
// 依次执行函数
for(let i=0;i