CANALLA.EXE
OBJECT-ORIENTED CATASTROPHE
EPISODE 01КУХНЯ КРИСА

Инкапсуляция сосисок*

Крис потребовал, чтобы сосиски оставались в холодильнике. Каналья считает, что требования нужно выполнять буквально. Даже если это никому не понравится.

LIVE SCENE / KITCHEN_01
SIMULATION
Каналья оценивает условия эксплуатации холодильника.FRAME: 0001
MISSION OBJECTIVES
0 / 3
01. Зайти в холодильникКаналья должна оказаться внутри объекта Refrigerator.
02. Съесть сосискуТеперь объект Sausage должен оказаться внутри Canalla.
03. Сохранить контрактfridge.contains(sausage) === true даже после перекуса.
ШАГ 03 · CODE EDITOR
Container.js ●
JAVASCRIPTСначала действия 01–02 в панели слева. Затем изменяй только тело метода contains().
01class Container {
02 contains(target) {
11 }
12}
Доступный API и контракты (раскрыть)

У каждого объекта есть массив this.items. Каждый вложенный объект тоже поддерживает contains(target). Прямой includes() проверяет только непосредственные элементы.

04 · TEST RUNNER
_
CANALLA QA / READY
> Жду, когда человек наконец запустит тесты.
> P.S. Каналья не признаёт багов. Только особенности реализации.
OBJECT EXPLORER
LIVE GRAPH