UNPKG

multimediaobject

Version:
50 lines (47 loc) 1.14 kB
/* eslint-disable */ const EventManager = function () { this.listeners = {}; }; // place properties here // Constructor EventManager.prototype = { // public methods addListener(event, fn) { if (this.listeners[event]) { if (fn instanceof Function) { if (this.listeners[event].indexOf(fn) < 0) { this.listeners[event].push(fn); } } } else { this.listeners[event] = []; this.addListener(event, fn); } return this; }, dispatchEvent(event, params, context) { params = params || {}; if (this.listeners[event]) { if (context) { this.listeners[event].forEach((f, index) => { f.call(context, params); }); } else { this.listeners[event].forEach((f, index) => { f.call(window, params); }); } } return this; }, removeListener(event, fn) { if(this.listeners[event]) { const fnIndex = this.listeners[event].indexOf(fn); if (fnIndex > 0) { this.listeners[event].splice(fnIndex, 1); } } return this; }, }; export default new EventManager();