Skip to content

Instantly share code, notes, and snippets.

View antyakushev's full-sized avatar

Anton Yakushev antyakushev

View GitHub Profile
var mediator = (function() {
var subscribe = function(channel, fn) {
if (!mediator.channels[channel]) mediator.channels[channel] = []; //создаёт массив, если его нету
mediator.channels[channel].push({ context: this, callback: fn }); //добавляет подписчика в массив
return this;
},
publish = function(channel) {
if (!mediator.channels[channel]) return false; //ничего не делает, если на такое сообщение никто не подписан
var args = Array.prototype.slice.call(arguments, 1); //arguments — объект, а не массив. таким вот образом он превращается в массив args, а заодно отсекается первый аргумент, который указан в объявлении функции явно — channel