码迷,mamicode.com
首页 > Web开发 > 详细

js:实现自定义事件对象接口

时间:2016-08-04 21:37:39      阅读:299      评论:0      收藏:0      [点我收藏+]

标签:

网易2017内推笔试题

要求:

  请实现下面的自定义事件Event对象的接口,功能见注释(测试1)

  该Event对象的接口需要能被其他对象拓展复用(测试2)

 1     //测试1
 2     Event.on(‘test‘,function(result){
 3         console.log(result);
 4     });
 5     Event.on(‘test‘,function(){
 6         console.log(‘test‘);
 7     });
 8     Event.emit(‘test‘,‘hello world‘);   //输出‘hello world‘ 和 ‘test‘
 9     //测试2
10     var person1 = {};
11     var person2 = {};
12     Object.assign(person1, Event);
13     Object.assign(person2, Event);
14     person1.on(‘call1‘,function(){
15         console.log(‘person1‘);
16     });
17     person2.on(‘call2‘,function(){
18         console.log(‘person2‘);
19     });
20     person1.emit(‘call1‘);  //输出‘person1‘
21     person2.emit(‘call2‘);  //没有输出
22     person1.emit(‘call1‘);  //没有输出
23     person2.emit(‘call2‘);  //输出‘person2‘
24 
25 
26     var Event = {
27         //通过on接口监听事件eventName
28         //如果事件eventName被触发,则执行callback回调函数
29         on:function(eventName, callback){
30             //你的代码
31         },
32         //触发事件 eventName
33         emit:function(eventName){
34             //你的代码
35         }
36     };

 

 

  • Object.assign(target, ...sources)  可以把任意多个的源对象自身的可枚举属性拷贝给目标对象,然后返回目标对象。

 

 

这里有篇解决的……但是没看明白http://blog.daraw.cn/2016/08/02/javascript-event-emitter/

js:实现自定义事件对象接口

标签:

原文地址:http://www.cnblogs.com/haoyijing/p/5738245.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!