EPISODE 01КУХНЯ КРИСА
Инкапсуляция сосисок*
Крис потребовал, чтобы сосиски оставались в холодильнике. Каналья считает, что требования нужно выполнять буквально. Даже если это никому не понравится.
Каналья оценивает условия эксплуатации холодильника.FRAME: 0001
01. Зайти в холодильникКаналья должна оказаться внутри объекта Refrigerator.
02. Съесть сосискуТеперь объект Sausage должен оказаться внутри Canalla.
03. Сохранить контракт
fridge.contains(sausage) === true даже после перекуса.JAVASCRIPTСначала действия 01–02 в панели слева. Затем изменяй только тело метода
contains().01class Container {
02 contains(target) {
11 }
12}
Доступный API и контракты (раскрыть)
У каждого объекта есть массив this.items. Каждый вложенный объект тоже поддерживает contains(target). Прямой includes() проверяет только непосредственные элементы.
CANALLA QA / READY
> Жду, когда человек наконец запустит тесты.
> P.S. Каналья не признаёт багов. Только особенности реализации.