Наследование в javascript с использованием Object.setPrototypeOf

102
16 февраля 2022, 12:10

Вопрос один возник, может кто подсказать? Пробую наследовать через Object.setPrototypeOf.

let obj = {
agr1: true,
arg2: function () {
return true
}
function FormatError (message) {
  this.name = "FormatError"
};

Object.setPrototypeOf(FormatError.prototype, obj.prototype) - не работает, только так FormatError.prototype = obj

А если таким образом наследовать от SyntaxError например то работает Object.setPrototypeOf(FormatError.prototype, SyntaxError.prototype), а с FormatError.prototype = SyntaxError - проблемы

Answer 1

Если выполнить console.log(obj.prototype) можно увидеть, что выведется undefined. Так как в объекте obj нет свойства с именем prototype.

Чтобы получить прототип объекта, нужно воспользоваться функцией Object.getPrototypeOf

Однако в этом случае это не поможет, так как поля и методы находятся непосредственно в объекте obj, а не его прототипе.

Поэтому решением может быть только присваивание самого объекта.

READ ALSO
Пожалуйста, помогите решить задачу

Пожалуйста, помогите решить задачу

Надо написать функцию, которая будет заменять все повторяющиеся символы в строке на ")", а неповторяющиеся на "("Подскажите пожалуйста решение

87
Загрузка JSON один раз в начале работы приложения

Загрузка JSON один раз в начале работы приложения

Приложение на AngularJSЕсть корневой модуль:

72
Javascript Нажатие кнопки на странице в браузере в определённое время

Javascript Нажатие кнопки на странице в браузере в определённое время

Мне нужно организовать нажатие кнопки на веб-странице в определённое время, которое я задамКод, который я вставляю в консоль хрома не работает,...

121
Оценить код, Может как-то улучшить

Оценить код, Может как-то улучшить

Ребят, не оценивайте верстку и адаптивностьГлавное - js код, а именно фильтрация https://github

100