J'essaie d'avoir une bonne idée des constructeurs javascript et s'ils sont vraiment en lecture seule. Voici un scénario de test simple:Constructeurs JavaScript
var A = function(){}
console.log(A.prototype.constructor == A); //true
Donc, à ce stade, chaque nouvelle fonction reçoit un objet prototype qui contient le constructeur comme référence. C'est tout bon. Maintenant, considérez ceci:
var B = function() {
this.id = 0;
}
A.prototype.constructor = B; // what does this do with A?
Alors maintenant, tous les cas de A devrait obtenir B en tant que constructeur:
var C = new A();
console.log(C.constructor == B) // true
Donc finalement, ce que cela a un effet réel sur chaque instance? Il ne semble pas:
console.log(C.id); // what will this yield?
Ma question est: quel est le but de l'exposition d'une référence de constructeur? Apparemment, vous pouvez le définir/le remplacer, mais il ne fait rien sauf changer la référence. Ou est-ce que je manque quelque chose?
Salut, chaque article, livre, à propos de l'héritage javascript, nous dit de réparer le constructeur du prototype, après cette situtation: 0: A.prototype = Object.create (B.prototype); ' ' A.prototype.constructor = B // Fixer ici ' Je ne comprends pas ce que fait' Object.create', mais la ligne suivante semble inutile. J'ai écrit du code en l'enlevant et cela n'a aucun effet. Donc ma question est, pourquoi tout le monde dit de * fixer * le constructeur? –