Девять, что такое прототип, цепочка прототипов?

Опытный образец:

Каждая функция-конструктор имеет свойство прототипа, то есть явное свойство прототипа, которое указывает на объект-прототип функции-конструктора.

Каждый объект экземпляра имеет свойство __proto__, неявное свойство прототипа, которое указывает на объект-прототип, создавший функцию.

Значение устанавливается в объект-прототип через явное свойство прототипа, а значение считывается в объект-прототип через неявное свойство прототипа, то есть неявное значение свойства-прототипа объекта-экземпляра равно явному значению свойства-прототипа его функция-конструктор

Цепь прототипа:

Каждый объект-прототип, создающий функцию, которая по умолчанию является пустым объектом экземпляра объекта функции-конструктора, также имеет свойство __proto__.

Цепочка __proto__ свойств объектов-экземпляров и объектов-прототипов, цепочка прототипов, заканчивающаяся __proto__ свойствами объекта-прототипа, из которых Object строит функцию

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

Если вы еще не можете его найти, продолжайте искать свойство __proto__, пока Object не сконструирует свойство __proto__ объекта-прототипа функции, которое равно null .

Что такое закрытие?

Функция, определенная в теле функции, которая обращается к внешней функциональной переменной, то есть функция замыкания (замыкание)

Преимущества:

1. Продлить жизненный цикл локальных переменных в функции

2. С частными переменными вне функции можно работать внутри функции [Ключевая роль]

Недостатки: Может привести к утечке памяти, поэтому используйте с осторожностью.

Сценарии применения:

1. Используйте функцию в качестве возвращаемого значения функции, например, инкапсулируя модули API, предоставляя только внутреннюю функцию функции внешнему миру и не раскрывая частные переменные внешней функции — — аналогично модификации разрешения класса