Почему не наследует свойство конструктора? Есть конструктор:function Manipulate (){ this.btn = 1 ; this.ul = 2; }; Есть метод:Manipulate.prototype.test = () => this.btn +this.ul; Есть наследование:const add = Object.create(Manipulate); Почему проверка говорит что add не наследует метод test?console.log(add.hasOwnProperty('test')); //false
Основная проблема здесь заключается в том, что вы используете стрелочную функцию при определении метода test в прототипе объекта Manipulate.
Стрелочные функции имеют другой контекст выполнения (this) по сравнению с обычными функциями. В данном случае, внутри стрелочной функции this указывает на глобальный объект, а не на экземпляр объекта Manipulate.
Для того, чтобы исправить эту проблему, замените стрелочную функцию на обычную функцию при определении метода test:
Основная проблема здесь заключается в том, что вы используете стрелочную функцию при определении метода test в прототипе объекта Manipulate.
Стрелочные функции имеют другой контекст выполнения (this) по сравнению с обычными функциями. В данном случае, внутри стрелочной функции this указывает на глобальный объект, а не на экземпляр объекта Manipulate.
Для того, чтобы исправить эту проблему, замените стрелочную функцию на обычную функцию при определении метода test:
Manipulate.prototype.test = function() {return this.btn + this.ul;
};
После этого, ваше наследование должно корректно работать:
const add = Object.create(Manipulate);console.log(add.hasOwnProperty('test')); // true
Теперь add будет наследовать метод test из прототипа объекта Manipulate.