Почему не наследует свойство конструктора? Есть конструктор: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

21 Авг 2019 в 07:04
178 +1
0
Ответы
1

Основная проблема здесь заключается в том, что вы используете стрелочную функцию при определении метода 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.

20 Апр в 13:08
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 683 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир