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

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

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

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

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

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

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

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

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

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

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

См. представление кода ниже:

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

См. представление кода ниже:

Заключение

Есть основные объекты, которые используют конструкторы, но использовать их не рекомендуется, например, объект Date().
При работе с объектными литералами прототипы получаются из object.prototype, а при работе с объектом-конструктором — из (the constructor name).prototype
Prototypes. не могут быть доступны для цикла for-in.

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

Синтаксис всех кодов Es6+ можно найти в этой статье здесь

Задавайте вопросы для уточнения и вносите исправления и предложения, я ожидаю их.