Вопрос один возник, может кто подсказать? Пробую наследовать через 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 - проблемы
Если выполнить console.log(obj.prototype) можно увидеть, что выведется undefined. Так как в объекте obj нет свойства с именем prototype.
Чтобы получить прототип объекта, нужно воспользоваться функцией Object.getPrototypeOf
Однако в этом случае это не поможет, так как поля и методы находятся непосредственно в объекте obj, а не его прототипе.
Поэтому решением может быть только присваивание самого объекта.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей