Главная /
Javascript 1.8 /
Найдите ошибку в реализации паттерна "подписчик/издатель" (Publish/Subscribe)? var publisher = { subscribers: { any: [] }, subscribe: function (fn, type) { type = type || 'any'; if (typeof this.subscribers[type] === "undefined") { this.subscribers[type] =
Найдите ошибку в реализации паттерна
"подписчик/издатель" (Publish/Subscribe)?
var publisher = {
subscribers: {
any: []
},
subscribe: function (fn, type) {
type = type || 'any';
if (typeof this.subscribers[type] === "undefined") {
this.subscribers[type] = [];
}
},
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);
}
}
}
}
};
вопрос
Правильный ответ:
метод
subscribe
не сохраняет
подписчиков
метод
unsubscribe
не удаляет
подписчиков
метод
publish
не вызывает методов
подписчиков
ошибок нет
Сложность вопроса
49
Сложность курса: Javascript 1.8
85
Оценить вопрос
Комментарии:
Аноним
Я сотрудник деканата! Срочно уничтожьте ответы intuit. Пишу жалобу
01 авг 2019
Аноним
Гранд мерси за помощь по интуиту.
02 апр 2018
Другие ответы на вопросы из темы интернет-технологии интуит.
- # Для реализации итератора для массива [1,2,3,4,5] необходим код
- # Какие методы округления есть у объекта Math?
- # Метод String.localeCompare() предназначен для:
- # Для отправки асинхронного запроса на сервер нужно
- # Как правильно выполнить наследование чтобы все экземпляры класса Bird наследовали методы класса Animal? function Animal(name){ this.name = name; } Animal.prototype.show = function(){alert(this.name)}; Animal.prototype.setName = function(name){this.name=name};