Estaba leyendo sobre prototipos y funciones de constructor en Javascript y encontré el siguiente fragmento en MDN:
const personPrototype = { greet() { console.log(`hello, my name is ${this.name}!`); } } function Person(name) { this.name = name; } Person.prototype = personPrototype; Person.prototype.constructor = Person;Lo que me confunde es la última línea: establecer la propiedad del constructor dentro de Person.prototype en el constructor Person. Aquí está la explicación de MDN:
La última línea (Person.prototype.constructor = Person;) establece la propiedad del constructor del prototipo en la función utilizada para crear objetos Person. Esto es necesario porque después de configurar Person.prototype = personPrototype; la propiedad apunta al constructor de personPrototype, que es Object en lugar de Person (porque personPrototype se construyó como un objeto literal).
Cuando ejecuto este código en mi consola sin la última línea, no parece haber ningún error. Estoy confundido acerca de por qué Person.prototype.constructor debe establecerse en Person y no dejarse como el Objeto predeterminado. ¿Tiene algo que ver con las instancias creadas por Person? Gracias.