javascript inheritance prototype constructor

javascript - Ventajas de establecer la propiedad "constructor" en el "prototipo"



inheritance prototype (1)

En la herencia de prototipos de JavaScript, ¿cuál es el objetivo de agregar la propiedad prototype.constructor? Dejame explicarte con un ejemplo.

var Super = function() { this.superProperty = ''Super Property'' } var Sub = function() { this.subProperty = ''Sub Property'' } Sub.prototype = new Super(); Sub.prototype.constructor = Sub; // advantages of the statement var inst = new Sub();

Las siguientes líneas devuelven siempre verdadero en todos los casos, al agregar Sub.prototype.constructor = Sub o no.

console.log(inst instanceof Sub) // true console.log(inst instanceof Super) // true

Supongo que puede ser útil cuando se obtienen nuevas instancias, pero ¿cuándo y / o cómo?

Gracias por adelantado.


Es solo para restablecer correctamente la propiedad del constructor para reflejar con precisión la función utilizada para construir el objeto.

Sub.prototype = new Super(); console.log(new Sub().constructor == Sub); // -> ''false'' Sub.prototype.constructor = Sub; console.log(new Sub().constructor == Sub); // -> ''true''