12 вещей, которые нужно знать о классах и прототипах в JavaScript.

Цель этого поста — сказать простыми словами о том, чем объекты и прототипы JavaScript отличаются от обычных для ООП классов и объектов, и почему модель JavaScript является более гибкой, чем классическая для ООП.

  1. В JavaScript всё ведёт себя, как объект.
  2. Абсолютно любая функция может вести себя как конструктор при помощи слова new. constr = new Func ();
  3. Абсолютно любой (даже пустой) объект может выступать в роли прототипа.
  4. Прототип имеется у каждого объекта. Например, для конструктора прототип по умолчанию — это пустой объект.
  5. Прототип — это не что-то особенное, как, например, «класс» в других языках. Это просто обычный объект, без каких-то дополнительных свойств или методов.
  6. Как ведет себя сущность в JavaScript делится между конструктором (любая функция, которая отвечает за создание и инициализацию сущности) и прототипом (задает поведение сущности)
  7. Любое разделяемое между объектами поведение определяется их прототипом. Например, если требуется иметь много объектов с одним и тем же методом, его лучше определить на прототипе.
  8. Ключевое слово this в методе, определенном на прототипе, но используемом на объекте с этим прототипом, ссылается на сам объект.
  9. Свойства и методы, уникальные для объекта, определяются в конструкторе.
  10. Любые свойства и методы прототипа доступны непосредственно в объектах, имеющих этот прототип.
  11. Свойства и методы прототипа могут переопределяться в конструкторе или непосредственно на объекте.
  12. Прототипная модель в JavaScript позволяет реализовать классическое наследование и поведение класс-объект в ООП, но также даёт делать более гибкие вещи.

 

Поделиться: Share on LinkedIn
Linkedin
Share on VK
VK
Tweet about this on Twitter
Twitter

Оставить комментарий

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Яндекс.Метрика