Узнайте, что это за два, и как они работают, написав их сами ...

Что случилось Что случилось !!, чтобы продолжить объяснение объектов в JavaScript, я хотел бы сказать, что наследование для меня очень полезно для поощрения повторного использования кода

Наследование

Когда вы ссылаетесь на способность объекта получать доступ к свойствам или методам другого объекта, все объекты могут наследовать свойства или методы другого объекта.

В JavaScript мы достигаем наследования с помощью «прототипного наследования» или, как мы все знаем, «прототипов».

Позвольте мне показать вам небольшой пример, вы также можете сделать это на своем компьютере ...

  1. Сначала я создаю два простых объекта

2. Давайте свяжем два объекта, свойства «объекта профессии», он будет внутри «объекта Я».

3. Давайте проверим, могу ли я получить свойства из объекта Me.

УУУУУУУУУУУУТ !!!
Полегче! Я думаю, у вас уже много вопросов .. например .. как это возможно? или что такое setPrototypeOf? или это правильный способ? и так далее…

Я скоро объясню.

Союз между объектами и прототипами

Чтобы получить объединение между двумя объектами, нам нужно понимать, что все дело в наследовании.

Прежний объект может наследовать все свойства прототипов, потому что каждый объект может иметь другой объект в качестве своего прототипа.

Прототипы

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

_proto_

Чтобы взаимодействовать с нашими прототипами, вам необходимо знать, что все браузеры имеют это псевдосвойство, называемое «_proto_», и на самом деле вы можете увидеть его, как только зарегистрируете свой объект. Он обеспечивает прямой доступ к [[Prototype]] языку:

Подробнее о _proto_

  • В Python несколько специальных переменных имели двойное подчеркивание, поэтому свойство _proto_ называется или лучше известно как «под прототипом», заимствуя имя специальных переменных в Python.
  • под прототипом не был частью стандарта ECMAScript 5, однако все больше и больше движков добавляют его в ECMAScript 6.
  • Свойство _proto_ - это ссылка на другой объект, который также имеет множество свойств внутри.
  • Никогда ... как ... никогда !!! переназначьте это свойство или используйте его напрямую. (Подробнее об этом читайте на странице MDN, очень полезно)

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

Сначала я создаю простой объект в своем inspect = ›инструментах разработчика =› консоли

Затем я регистрирую объект

И как видите, вот оно !! _proto_ !! наш драгоценный XD

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

Посмотрим, смогу ли я получить доступ к свойствам объекта!

Когда вы обращаетесь к свойству из объекта, JavaScript начинает его поиск в этом объекте и продолжает его прототип. затем прототип прототипа и так далее.

Что, если бы мы могли зарегистрировать «Я объект», давайте посмотрим, что мы сможем увидеть!

Цепочка прототипов

Как мы уже говорили ранее, почти все объекты имеют свойство [[Prototype]]. но он может быть нулевым. Поэтому цепочка объектов, связанных свойством [[Prototype]], называется цепочкой прототипов.

Цепочка прототипов ведет себя как единый объект. это волшебство сохраняется, когда вы вызываете метод, значением this всегда является объект, с которого начался поиск метода, а не то, где метод был найден. Это позволяет методу получить доступ ко всем свойствам цепочки прототипов.

Object.create

Вы можете установить свойство объекта вручную с помощью Object.create. Эта функция создана Дугласом Крокфордом и используется для присоединения прототипов делегатов без использования конструкторов и ключевого слова new

Object.create существует, потому что это более естественно для модели прототипа, чем ключевое слово new, создает новый объект с прототипом, установленным на определенный объект

Посмотрим, как это работает:

Установка прототипа

Как быть в этом уверенным?

Большое спасибо за уделенное время. И, до следующего раза, хорошего дня!

Вам понравилось это? Хлопайте по нему слева, чтобы другие тоже могли его обнаружить, или подписывайтесь на меня, если вас интересуют другие главы, подобные этой.