Всем привет! =)
На картинке приведен код.
В строке 15 происходит наследование.
Вопрос: Почему, при этом, не возникает ошибка?
Ведь:
1) Не вызывается родительский конструктор
2) Помимо того, что он не вызывается так еще ему необходимы параметры для работы, в случае если он вызывается пустой.
Не могу понять как оно, вот так вот, всё работает=)
Заранее спасибо за ответы!

// Расширения в прототипах
let Person = {
getGreeting() {
return 'Hello';
}
}
let Dog = {
getGreeting() {
return 'Woof!';
}
}
// прототип - person
let friend = Object.create( Person );
console.log( friend.getGreeting()); // 'Hello'
console.log( Object.getPrototypeOf( friend ) === Person ); // true
// сменить прототип на Dog
Object.setPrototypeOf( friend, Dog );
console.log( friend.getGreeting()); // 'Woof!'
console.log( Object.getPrototypeOf( friend ) === Dog ); // true
// Простой доступ к прототипу с помощью ссылки super
let person = {
getGreeting() {
return 'Hello';
}
}
let dog = {
getGreeting() {
return 'Woof!';
}
}
let friend2 = {
getGreeting() {
// ES5
// this в данном случаем будет ссылкой на прототип объекта person.
// return Object.getPrototypeOf( this ).getGreeting.call( this ) + ', hi!';
// ES6
// Выражаясь простым языком, super - это указатель на текущий прототип объекта, фактически это значение Object.getPrototypeOf( this ).
return super.getGreeting() + ', hi!';
}
}
// сменить прототип на person
Object.setPrototypeOf( friend2, person );
console.log( friend2.getGreeting()); // Hello, hi!
console.log( Object.getPrototypeOf( friend2 ) === person ); // true
// сменить прототип на dog
Object.setPrototypeOf( friend2, dog );
console.log( friend2.getGreeting()); // Woof, hi!
console.log( Object.getPrototypeOf( friend2 ) === dog ); // true
Они выставляются по умолчанию то что ты их назначил это не значить что их нет JS
очень интеллектуальный язык потому он многое доделывает за вас сам
⚤
>> 1) Не вызывается родительский конструктор
Не вызывается? А строки 19 и 10?
́
>>
2) Помимо того, что он не вызывается так еще ему необходимы параметры для работы, в случае если он вызывается пустой.
В строке 19 вызов без аргументов?