console
// 实现简单的Event模块的emit和on方法
function PingEvents() {
// on
this.$on = function(eventName, callBack) {
if (!this.handles) {
this.handles = {}
}
if (!this.handles[eventName]) {
this.handles[eventName] = []
}
this.handles[eventName].push(callBack)
}
// emit
this.$emit = function(eventName, obj) {
if (this.handles[eventName]) {
for (let i = 0; i < this.handles[eventName].length; i++) {
this.handles[eventName][i](obj)
}
}
}
return this
}
var pingEvents = new PingEvents()
// on
pingEvents.$on('say', function(name) {
console.log('Say Hello', name)
})
pingEvents.$emit('say', 'test')
// pingEvents.$emit('say', 'test')
实现简单的Event模块的emit和on方法