Прототип — очень интересная концепция, которая существует только в JavaScript.

Как вы, возможно, знаете, Object в JavaScript наследует свое свойство своему дочернему элементу.

function parents() {
  this.tall = 'very tall';
  this.face = 'handsome';
}
let child = new parents;

Если мы используем ключевое слово new, он унаследует объявление своего свойства.
Дочерний элемент будет иметь то же свойство своих родителей parents .
Это ручное наследование от своих родителей, но only в JavaScript существует это еще один способ унаследовать свое имущество своему ребенку.

› Здесь в игру вступает прототип.

Переключим стрелку.

Добавили ли мы свойство Prototype в родителей?

Мы можем назвать прототип геном.

If my parents were tall, I will be tall.
If my parents were handsome and pretty, I will be handsome.
// I know it's not always happen to the real world.. but worth to have as an example here :)

^ Таким образом, как только мы устанавливаем какое-либо свойство в прототипе (гене) его родителей, дочерний элемент имеет то же свойство.

parents.prototype.lastName = 'lee';
console.log(child.lastName); // ???

Если в объекте нет свойства с именем lastName, машина также будет искать его родителей. ‹- Это называется prototype chain.

console.log(child.lastName); // 'lee'

Возможно, вы уже сталкивались с этим сайтом, верно?

Там сказано Array.prototype.slice()
обычно мы используем метод среза без ключевого слова prototype, но почему он показывает вам Array.prototype.slice()?

Это потому, что у Array есть свойство под названием slice в их гене.

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

Итак, в Array уже встроено множество свойств прототипа.