Вопрос №69021 от пользователя Николай Ахметянов в уроке «Прототипы», курс «JS: Введение в ООП»

Николай Ахметянов

Здравствуйте! Почему внутри функции-конструктора this.prototype равен undefined? function Money(value, currency = 'usd') { this.prototype.getValue = function () { return this.value; } }

2 0

Maksim Litvinov

Добрый день, Николай! Здесь this - это ссылка на текущий объект, а не на конструктор. А доступ к прототипу можно получить из свойства prototype конструктора, но не объекта:

Доступ к прототипу можно получить не только из объектов, но и из свойства prototype конструктора, который эти объекты создаёт

Посмотрите, как мы добавляем функцию в прототип:

function Company(name) {
  this.name = name;
}

// Доступ получаем через свойство prototype функции-конструктора Company
Company.prototype.getName = function getName() {
  // this по-прежнему зависит от контекста, в котором вызывается
  return this.name;
}
0

Николай Ахметянов

Тогда я не понимаю к чему написано в теории

Доступ к прототипу можно получить не только из объектов

Правильно ли я понял, что доступ получить можно, но добавить что-то в прототип можно только через прототип констурктора?

0

Используйте Хекслет по максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Даю согласие на обработку персональных данных, соглашаюсь с «Политикой конфиденциальности» и «Условиями оказания услуг»

Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов веб-приложений
30 июня 10 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
30 июня 10 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
30 июня 10 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов веб-приложений
30 июня 10 месяцев
Иконка программы Fullstack-разработчик
Профессия
Новый
Разработка фронтенд и бэкенд компонентов веб-приложений
30 июня 16 месяцев
Иконка программы Верстальщик
Профессия
Вёрстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
30 июня 10 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
Создает веб-приложения со скоростью света
30 июня 5 месяцев