Вопрос №69021 от пользователя Николай Ахметянов в уроке «Прототипы», курс «JS: Введение в ООП»
Здравствуйте!
Почему внутри функции-конструктора this.prototype равен undefined?
function Money(value, currency = 'usd') {
this.prototype.getValue = function () {
return this.value;
}
}
Добрый день, Николай! Здесь this
- это ссылка на текущий объект, а не на конструктор. А доступ к прототипу можно получить из свойства prototype конструктора, но не объекта:
Доступ к прототипу можно получить не только из объектов, но и из свойства prototype конструктора, который эти объекты создаёт
Посмотрите, как мы добавляем функцию в прототип:
function Company(name) {
this.name = name;
}
// Доступ получаем через свойство prototype функции-конструктора Company
Company.prototype.getName = function getName() {
// this по-прежнему зависит от контекста, в котором вызывается
return this.name;
}
Тогда я не понимаю к чему написано в теории
Доступ к прототипу можно получить не только из объектов
Правильно ли я понял, что доступ получить можно, но добавить что-то в прототип можно только через прототип констурктора?
Используйте Хекслет по максимуму!
- Задавайте вопросы по уроку
- Проверяйте знания в квизах
- Проходите практику прямо в браузере
- Отслеживайте свой прогресс
Зарегистрируйтесь или войдите в свой аккаунт
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.







