javascript - event对象的接口需要能被其他对象拓展
PHP中文网
PHP中文网 2017-04-11 12:13:18
[JavaScript讨论组]

实现下面的自定义事件Event对象的接口,功能见注释(测试1)
该Event对象的接口需要能被其他对象拓展复用(测试2)

Event.on('test',function(result){
    console.log(result);
})
Event.on('test',function(){
    console.log('test');
})
Event.emit('test','hello world');//输出'test'和'hello world'
//测试2
var person1 = {};
var person2 = {};
Object.assign(person1,Event);
Object.assign(person2,Event);
person1.on('call1',function(){
    console.log('person1');
});
person2.on('call2',function(){
    console.log('person2');
});
person1.emit('call1'); //输出 'person1'
person1.emit('call1'); //未输出
person1.emit('call1'); //未输出
person1.emit('call1'); //输出 'person2'

var Event= {
    //通过on接口监听事件evenName
    //如果事件eventName被触发,则执行callback回调函数
    on:function(eventName,callback){
        //代码
    },
    //触发事件eventName
    emit:function(eventName){
        //代码
    }
}

求指点

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(1)
怪我咯
var Event = {
    on: function(eventName, callback){
      //todo
      if(!this[eventName])
      this[eventName] = [];
      this[eventName].push(callback);
   },
   emit: function(eventName){
   //todo
    if(this[eventName])
    Array.prototype.forEach.call(this[eventName], function(func){
      func.call(this);
    });
  }
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号