Давайте поиграем с объектом Javascript

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

В этой статье я объясню наследование прототипа очень простым и легким способом, чтобы вы могли дать правильный ответ на собеседовании или решить, где использовать наследование прототипа.

Итак, приступим 😎🥳

Что такое наследование прототипа?

Каждый объект с его методами и свойствами содержит внутреннее и скрытое свойство, известное как [[Prototype]]. А наследование прототипа - это метод, с помощью которого объект может наследовать свойства и методы другого объекта.

Определение прототипа

По сути, мы выполняем наследование прототипа для литерального объекта или функционального объекта.

Наследование прототипа объекта

Синтаксис:

ChildObject.__proto__ = ParentObject // literal object

Как видно из первого фрагмента кода, вы можете использовать метод showFullName, даже если он определен только в parentObj. Но вы создаете объект с его собственной парой "ключ-значение", по-прежнему showFullName будет и печатать fullName объекта, и это то, что называется наследованием прототипа.

Функциональное наследование прототипа

При наследовании функционального прототипа мы наследуем методы и свойства от другого прототипа функции.

Синтаксис:

ChildFunction.prototype = ParentFunction.prototype

Во фрагменте кода вы можете видеть, что ChildFunction наследует свойства прототипа ParentFunction.

Примеры использования в реальном мире

Теперь мы знаем, как сделать наследование прототипа, но теперь мы обсудим его реальные варианты использования.

Прототипное наследование полезно везде, где вы хотите использовать объектно-ориентированный подход с наследованием для моделирования ваших проблем.

Есть много вариантов использования, но позвольте мне упомянуть некоторые из них.

  1. Хорошим примером является то, как Backbone.js предоставляет базовые классы, такие как Model, Collection и View. В своем приложении вы расширяете эти базовые классы, например, для чего-то особенного.
var ProfileSummary = Backbone.View.extend({
  render: function () {
    this.$el.html("Profile summary view");
  }
});

Теперь ProfileSummary - это класс, который имеет (наследует) всю Backbone. Просматривайте методы и функции, но вы настраиваете то, что делает функция render.

2. Анимация Javascript требовала массового использования наследования прототипов.

Спасибо за прочтение. Я надеюсь, что это поможет вам лучше понять наследование прототипа.