Найти тему
WebForMySelf

ООП в JavaScript

Источник: WebForMyself.com

Объектно-ориентированное программирование — это шаблон программирования, основанный на концепции различных типов объектов и их свойств. В настоящее время почти все языки программирования поддерживают ООП, но в этой статье мы рассмотрим ключевые характеристики ООП в javascript, и я позабочусь о том, чтобы привести демонстрацию на простых примерах.

Мы рассмотрим два ключевых принципа ООП: наследование и полиморфизм на базовом уровне в том смысле, как они на самом деле относятся к коду javascript, используя основные характеристики ООП для иллюстрации принципов объектно ориентированного подхода.

Конструкторы и ключевое слово this

Две самые важные вещи в объектно-ориентированном программировании в javascript, как и практически в любом другом языке программирования — это ключевое слово this и constructors.

Хотя Es6+ считается синтаксическим сахаром и обеспечивает более удобный способ написания конструкторов или объявления классов, в этой статье я буду использовать Es5, чтобы мы могли глубже понять, как конструкторы работают под капотом.

Точно так же, как объектные литералы, где объекты пар ключ-значение присваиваются переменной, работают и конструкторы, но для нескольких экземпляров, в отличие от объектных литералов, конструкторы включают прототипы и наследование.

Во-первых, имея конструктор одного или нескольких свойств, мы можем создать экземпляр объекта с помощью ключевого слова new. См. демонстрацию кода и результаты ниже:

-2

Ключевое слово this — очень важное ключевое слово, его значение определяется текущим контекстом, в котором выполняется ваш код. В нашем примере его значение привязано к контексту функции Entity. Вы можете узнать больше о ключевом слове this здесь.

Вы также можете добавить несколько свойств в конструктор и создавать их экземпляры по-разному.

Прототипы и наследование прототипов

У каждого объекта в javascript есть прототип. Прототип сам по себе является объектом, а другие объекты могут наследовать свойства и методы от своих прототипов. Это означает, что мы также можем назначать или добавлять выбранные нами функции в цепочку прототипов конструктора. См. представление кода ниже:

-3

Прототипное наследование — это когда объект наследует свои свойства от другого объекта в том же контексте, это может быть достигнуто с помощью метода object.create(). См. представление кода ниже:

-4

Вывод

Большинство объектов используют конструкторы. При работе с объектными литералами прототип получаем с помощью object.prototype, но при работе с конструктором, мы получаем объект используя (the constructor name).prototype

К прототипам нельзя получить доступ через цикл for-in.

Искусство добавления/назначения функций в прототип конструктора считается эффективным и рекомендуется. Метод сall() — это функция, используемая для вызова другой функции из другого блока кода в том же контексте.

Вы можете найти синтаксис Es6+ всего кода этой статьи здесь.

Читайте нас в Telegram, VK

Источник: medium.com

#javascript #js #ооп