Емітери подій

Словом, дали мені таск — написати простий емітер. На вході маємо отаке:

var a = {
};
function emitter(obj) {
}
a = emitter(a);
a.emit(‘eventName’, {1: 2});
//відбувається івент 'eventName', передаються дані {1: 2}
a.emit(‘eventName’, {1: 2});
//еміт події
a.off(‘eventName’);
//всі event listeners вимикаються
a.one(‘eventName’, function (data) {
});
//event listener який виконується лише раз. Після виконання callback -
... read more »