¿Cómo responder "¿Qué son los prototipos y las cadenas de prototipos" en una entrevista?

Cada objeto inicializará una propiedad dentro de él, que es el prototipo. En términos sencillos, un prototipo es una plantilla, o más exactamente, una plantilla de objeto.

Cuando accedemos a las propiedades de un objeto, si la propiedad no existe dentro del objeto, entonces buscará la propiedad en el prototipo, y este prototipo tendrá su propio prototipo, por lo que mantendremos mirando hacia abajo, que es lo que solemos llamar al concepto de cadena prototipo.

Para las funciones, solo las funciones tienen el atributo prototipo. Person.prototype es un objeto y tiene dos atributos. Uno es el constructor que apunta a su función constructora Persona y el otro es el atributo __proto__: es un. objeto. , apuntando al prototipo de la capa anterior.

El final de la cadena de prototipos es Object.prototype. Todos los objetos heredan propiedades de Object.prototype.

Function.prototype y Function.__proto__ son el mismo objeto. Objeto/Matriz/Cadena y otros constructores son esencialmente los mismos que Función y todos heredan de Function.prototype.

Function.prototype hereda directamente Object.prototype.

El objeto y la función aquí son un problema como el del huevo y la gallina. Para resumir: primero está Object.prototype (la parte superior de la cadena de prototipos), Function.prototype hereda de Object.prototype, y luego. finalmente, Función, Objeto y otras funciones de construcción heredan Función.prototipo.