Главная /
Javascript 1.8 /
Для того что бы сделать из любого объекта "издателя" в паттерне "подписчик/издатель" (Publish/Subscribe) с помощью этого кода, нужно использовать функцию: var publisher = { subscribers: { any: [] }, subscribe: function (fn, type) { type = type || 'any'; i
Для того что бы сделать из любого объекта "издателя" в
паттерне "подписчик/издатель" (Publish/Subscribe) с помощью этого
кода, нужно использовать функцию:
var publisher = {
subscribers: {
any: []
},
subscribe: function (fn, type) {
type = type || 'any';
if (typeof this.subscribers[type] === "undefined") {
this.subscribers[type] = [];
}
this.subscribers[type].push(fn);
},
unsubscribe: function (fn, type) {
this.visitSubscribers('unsubscribe', fn, type);
},
publish: function (publication, type) {
this.visitSubscribers('publish', publication, type);
},
visitSubscribers: function (action, arg, type) {
var pubtype = type || 'any', subscribers = this.subscribers[pubtype], i, max = subscribers.length;
for (i = 0; i < max; i += 1) {
if (action === 'publish') {
subscribers[i](arg);
} else {
if (subscribers[i] === arg) {
subscribers.splice(i, 1);
}
}
}
}
};
вопрос
Правильный ответ:
Сложность вопроса
73
Сложность курса: Javascript 1.8
85
Оценить вопрос
Комментарии:
Аноним
Спасибо за решебник по интуит.
28 авг 2018
Аноним
спасибо за пятёрку
17 май 2016
Другие ответы на вопросы из темы интернет-технологии интуит.
- # В какой области видимости вызываются функции переданные setTimeout?
- # Как правильно использовать цепочку функций (Function Chaining) на основе объекта MathChain? MathChain = function() { this.pass = function() { var ar = []; for(var i=0;i<arguments.length;i++) { ar.push(arguments[i]) } this.multiply = eval(ar.join('*')); this.add = eval(ar.join('+')); return this; } }
- # Что будет если в паттерне "Подписчик/Издатель" (Publish/Subscribe) один из подписчиков будет слишком долго обрабатывать событие от издателя?
- # Объект CSSRule массива cssRules имеет свойства:
- # Какой метод объекта Math нужно использовать чтобы найти максимальное из 3 чисел?