33 * @class Emitter
44 */
55export class Emitter {
6-
76 /**
87 * @constructor
98 */
109 constructor ( ) {
1110 // set events hash
1211 this . _events = this . _events || { } ;
13-
1412 // set onceEvents hash
15- this . _onceEvents = this . _onceEvents || { }
13+ this . _onceEvents = this . _onceEvents || { } ;
1614 }
17-
15+
1816 on ( eventName , listener ) {
19- if ( ! eventName || ! listener ) {
20- return ;
21- }
17+ if ( ! eventName || ! listener ) return ;
2218 // set listeners array
2319 let listeners = this . _events [ eventName ] = this . _events [ eventName ] || [ ] ;
2420 // only add once
25- if ( listeners . indexOf ( listener ) == - 1 ) {
26- listeners . push ( listener ) ;
27- }
28-
21+ if ( listeners . indexOf ( listener ) === - 1 ) listeners . push ( listener ) ;
2922 return this ;
3023 }
31-
24+
3225 once ( eventName , listener ) {
33- if ( ! eventName || ! listener ) {
34- return ;
35- }
26+ if ( ! eventName || ! listener ) return ;
3627 // add event
3728 this . on ( eventName , listener ) ;
3829 // set onceListeners object
39- let onceListeners = this . _onceEvents [ eventName ] =
40- this . _onceEvents [ eventName ] || { } ;
30+ let onceListeners =
31+ this . _onceEvents [ eventName ] =
32+ this . _onceEvents [ eventName ] || { } ;
4133 // set flag
4234 onceListeners [ listener ] = true ;
43-
4435 return this ;
4536 }
4637 off ( eventName , listener ) {
4738 let listeners = this . _events && this . _events [ eventName ] ;
48- if ( ! listeners || ! listeners . length ) {
49- return ;
50- }
39+ if ( ! listeners || ! listeners . length ) return ;
5140 const index = listeners . indexOf ( listener ) ;
52- if ( index != - 1 ) {
53- listeners . splice ( index , 1 ) ;
54- }
55-
41+ if ( index !== - 1 ) listeners . splice ( index , 1 ) ;
5642 return this ;
5743 }
58-
44+
5945 dispatchEvent ( eventName , obj = { } ) {
6046 let listeners = this . _events && this . _events [ eventName ] ;
61-
62- if ( ! listeners || ! listeners . length ) {
63- return ;
64- }
47+ if ( ! listeners || ! listeners . length ) return ;
6548
6649 let i = 0 ;
6750 let listener = listeners [ i ] ;
6851 // once stuff
6952 const onceListeners = this . _onceEvents && this . _onceEvents [ eventName ] ;
70-
53+
7154 while ( listener ) {
7255 let isOnce = onceListeners && onceListeners [ listener ] ;
7356 if ( isOnce ) {
@@ -83,7 +66,6 @@ export class Emitter {
8366 i += isOnce ? 0 : 1 ;
8467 listener = listeners [ i ] ;
8568 }
86-
8769 return this ;
8870 }
8971}
0 commit comments