prototipos y herencia de javascript [duplicado]
Mi pregunta es Object es el último en la cadena de prototipos, todos los objetos heredan propiedades y métodos de él, cómo heredan los métodos de Function.prototype, por qué Object.__proto__ === Function.prototype// verdadero, por qué Object.__proto__no es nulo.
Respuestas
Lo fundamental Objecten JavaScript tiene que tener una forma de instanciarlo, por lo que requiere un prototypeobjeto para ayudar en líneas como esta:
let myObj = new Object();
Y es por eso Object.__proto__que no lo es null.
El Functionobjeto es un tipo especial de objeto que facilita la instanciación del objeto a través de un constructor y cuando se usa de esta manera se conoce como una "función de constructor". Por lo tanto, tiene sentido Objectheredar de un Functionobjeto para poder crear instancias de objetos.
La función también es un objeto. Así que también hereda de Object.
Pero no se deje confundir por Object.__proto__. Eso es algo que agrega el navegador y en realidad no es parte del idioma. Así que no confíe en él ni lo use.
Esencialmente, lo Function.prototypees Object.__proto__.