<!DOCTYPE html>
<html lang="en">
<body>
<button id="btn">登录</button>
</body>
<script>
var oBtn = document.getElementById('btn')
class Event {
constructor() {
this.eventTypeObj = {}
}
on(eventType, fn) {
if (!this.eventTypeObj[eventType]) {
this.eventTypeObj[eventType] = []
}
this.eventTypeObj[eventType].push(fn)
}
emit() {
console.log('arguments :', arguments);
var eventType = Array.prototype.shift.call(arguments)
console.log('eventType :', eventType);
var eventList = this.eventTypeObj[eventType]
for (var i = 0; i < eventList.length; i++) {
eventList[i].apply(eventList[i], arguments)
}
}
remove(eventType, fn) {
var eventTypeList = this.eventTypeObj[eventType]
if (!eventTypeList) {
return false
}
if (!fn) {
eventTypeList && (eventTypeList.length = 0)
} else {
for (var i = 0; i < eventTypeList.length; i++) {
if (eventTypeList[i] === fn) {
eventTypeList.splice(i, 1)
i--;
}
}
}
}
}
var handleFn = function (data) {
console.log(data)
}
var event = new Event()
event.on('click', handleFn)
event.emit('click', '1')
oBtn.onclick = function () {
}
</script>
</html>