Объектно-ориентированное программирование — это просто шаблон программирования, основанный на концепции различных типов объектов и их свойств.
В настоящее время почти все языки программирования поддерживают ООП, но в этой статье мы рассмотрим ключевые характеристики ООП в 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+ можно найти в этой статье здесь
Задавайте вопросы для уточнения и вносите исправления и предложения, я ожидаю их.