gitverse new year логотип

task-10-snapshot-FbDKk

Форк
60

месяц назад
месяц назад
месяц назад
README.md

task-10

Основное задание

В файле

index.js
вас ждут студенты, готовые слушать лекцию:

var students = {
Sam: {
focus: 100,
wisdom: 50
},
Sally: {
focus: 100,
wisdom: 60
}
};

И преподаватель, который начинает лекцию и показывает первый слайд.

lecturer
.on('begin', students.Sam, function () {
// Внимательно случшаем преподователя
this.focus += 10;
})
lecturer
.on('slide', students.Sam, function () {
// И впитываем мудрость с каждым слайдом
this.wisdom += 10;
})

Студента можно подписать на событие, производимое преподавателем (например, начало лекции или показ нового слайда) — то есть указать, какая функция должна быть вызвана при наступлении этого события.

Ваша задача — реализовать несколько методов:

  • подписка на событие —
    on
  • отписка от события —
    off
  • вызов события —
    emit

Вам также нужно реализовать поддержку пространства имён для событий.

lecturer.on('slide', students.Sam, function () {
// Мудрость с каждым слайдом растет
this.wisdom += 10;
});
lecturer.on('slide.funny', daria, function () {
// А иногда нет
this.wisdom -= 5;
});

Примеры использования можно посмотреть в index.js.

Дополнительные условия и ограничения:

  • События должны возникать в том порядке, в котором на них подписывались
  • На одно событие с одинаковыми объектами и обработчиками можно подписаться неограниченное количество раз. Обработчики вызываются в порядке подписки.
  • Пространства имён разделены только точкой:
    • на событие
      slide.funny
      произойдут события
      slide.funny
      и
      slide
      (именно в таком порядке)
    • на событие
      slidee
      произойдет
      slidee
      , но не
      slide
    • отписка от
      slide.funny
      отписывает только от него
    • отписка от
      slide
      отписывает и от
      slide
      , и от
      slide.funny

Описание

Snapshot generated from kim-2024-2025/task-10

Языки

JavaScript

Сообщить о нарушении

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.