Давайте поиграем с объектом Javascript
Прототип - это основная концепция javascript и наиболее часто задаваемый вопрос на собеседовании, но, к сожалению, даже опытный разработчик иногда не имеет о нем глубоких знаний.
В этой статье я объясню наследование прототипа очень простым и легким способом, чтобы вы могли дать правильный ответ на собеседовании или решить, где использовать наследование прототипа.
Итак, приступим 😎🥳
Что такое наследование прототипа?
Каждый объект с его методами и свойствами содержит внутреннее и скрытое свойство, известное как [[Prototype]]. А наследование прототипа - это метод, с помощью которого объект может наследовать свойства и методы другого объекта.
Определение прототипа
По сути, мы выполняем наследование прототипа для литерального объекта или функционального объекта.
Наследование прототипа объекта
Синтаксис:
ChildObject.__proto__ = ParentObject // literal object
Как видно из первого фрагмента кода, вы можете использовать метод showFullName, даже если он определен только в parentObj. Но вы создаете объект с его собственной парой "ключ-значение", по-прежнему showFullName будет и печатать fullName объекта, и это то, что называется наследованием прототипа.
Функциональное наследование прототипа
При наследовании функционального прототипа мы наследуем методы и свойства от другого прототипа функции.
Синтаксис:
ChildFunction.prototype = ParentFunction.prototype
Во фрагменте кода вы можете видеть, что ChildFunction наследует свойства прототипа ParentFunction.
Примеры использования в реальном мире
Теперь мы знаем, как сделать наследование прототипа, но теперь мы обсудим его реальные варианты использования.
Прототипное наследование полезно везде, где вы хотите использовать объектно-ориентированный подход с наследованием для моделирования ваших проблем.
Есть много вариантов использования, но позвольте мне упомянуть некоторые из них.
- Хорошим примером является то, как
Backbone.js
предоставляет базовые классы, такие как Model, Collection и View. В своем приложении вы расширяете эти базовые классы, например, для чего-то особенного.
var ProfileSummary = Backbone.View.extend({
render: function () {
this.$el.html("Profile summary view");
}
});
Теперь ProfileSummary - это класс, который имеет (наследует) всю Backbone. Просматривайте методы и функции, но вы настраиваете то, что делает функция render
.
2. Анимация Javascript требовала массового использования наследования прототипов.
Спасибо за прочтение. Я надеюсь, что это поможет вам лучше понять наследование прототипа.