@Valefar

Зачем нужны prototype если все ключи и методы можно задать в конструкторе?

Зачем нужны prototype если все ключи и методы можно задать в конструкторе?
  • Вопрос задан
  • 255 просмотров
Пригласить эксперта
Ответы на вопрос 2
@balamyt92
; select * from users; --
Для "наследования" и динамического изменения в процессе исполнения.
Ответ написан
Комментировать
@Melagomania
Определять метод в конструкторе = создавать новую копию функции для каждого нового экземпляра класса. Это не есть хорошо: создав 10 экземпляров класса, мы получим 10 одинаковых функций (зачем?).
Записывая метод в prototype, мы не присваиваем его непосредственно объекту. Метод окажется в свойстве __proto__ созданного экземпляра. Каждый экземпляр нашего класса имеет свойство __proto__ и это свойство у каждого экземпляра ссылается на ОДИН и то тот же объект, в который мы и записали наш метод, используя prtototype. Такми образом, записав функцию func в prototype и потом создав 10 экземпляров класса, мы получим всего ОДНУ функцию func, сохраненную в __proto__. Все созданные объекты будут использовать эту ЕДИНСТВЕННУЮ функцию, хранящуюся в общем месте.
Вот как-то так.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы