写一个Event类,实现事件的绑定(on方法)
,调用(trigger方法)
,
解绑(off方法)
,on可以多次绑定事件,每个事件都可以被单独触发,被单独解绑,请手写代码。
class Event {
constructor(){
this.obj = {}
}
on(name, callback) {
if(!this.obj[name]){
this.obj[name] = [callback];
}else {
this.obj[name].push(callback);
}
}
trigger(name) {
if(!this.obj[name]){
console.error('not exist attribute.');
}else {
// 运用打印1到10的问题
for(let i=0; i<this.obj[name].length; i++) {
this.obj[name][i]();
}
}
}
off(name){
if(!this.obj[name]){
console.error('not exist attribute.');
}else {
this.obj[name] = null;
}
}
}
const event = new Event();
event.on('test', function(){
console.log('test1');
})
event.on('test', function(){
console.log('test2');
})
event.on('test', function(){
console.log('test3');
})
event.trigger('test');