Answer
t.me/js_testОтвет:
Будет ошибка.
Объяснение:
В ES-2015 появилось новое ключевое слово super
. Оно предназначено только для использования в методах объекта.
Вызов super.parentProperty
позволяет из метода объекта получить свойство его прототипа.
При обращении через super
используется [[HomeObject]]
текущего метода, и от него берётся __proto__
. Поэтому super
работает только внутри методов.
Ошибка возникнет, так как rabbit.walk
обычная функция и не имеет [[HomeObject]]
. Поэтому в ней не работает super
.
Код для проверки:
'use strict'; let animal = { walk() { alert("I'm walking"); } }; let rabbit = { __proto__: animal, walk: function() { // Надо: walk() { super.walk(); // Будет ошибка! } }; rabbit.walk();