Ошибка в прототипном наследовании - javascript - PullRequest
0 голосов
/ 14 июля 2020

Я определяю два объекта следующим образом: Отдел и Сноска

enter image description here

введите описание изображения здесь

Поскольку два объекта используют один и тот же метод getData, я хотел бы унаследовать метод getData Департамента от Footnote следующим образом:

Footnote.prototype.getData = Department.prototype.getData;

Затем, когда я создать объект сноски и вызвать метод getData,

var footnote = new Footnote();

вышла ошибка: Uncaught TypeError: footnote.getData не является функцией

Кто-нибудь знает, почему и как расширить Department getData к сноске

1 Ответ

0 голосов
/ 14 июля 2020

В вашем текущем коде метод getData добавляется к экземпляру Department внутри конструктора Department:

this.getData = function(){ /* ... */ }

Вы пытаетесь использовать Department.prototype.getData позже в коде. Но это не функция, потому что вы ее не назначили. Чтобы он работал, вам нужно вместо этого назначить метод getData следующим образом:

Department.prototype.getData = function(){ /* ... */ }

Это добавит метод ко всем экземплярам Department, и он также будет работать, чтобы назначить его прототипу Footnote.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...