Y’a un bémol à ce que je racontais hier, en particulier sur la gestion des surcharges de propriétés et de méthodes entre l’ancienne façon et la nouvelle. Par exemple je peux faire ceci :
function Circle(radius) {
this.radius = radius;
}
Circle.prototype = {
debug: true,
dump: function (val) {
console.log(val);
},
};
Par contre je ne peux pas faire ça :
class Circle {
constructor(radius) {
this.radius = radius;
}
}
Circle.prototype = {
debug: true,
dump: function (val) {
console.log(val);
},
};
Là j’ai droit à joli message d’erreur quand on arrive à la ligne 7 :
Uncaught TypeError: Cannot assign to read only property 'prototype' of function 'class Circle { …
Donc quand on utilise une classe, la propriété prototype de Circle est en lecture seule !
Il faut donc faire comme ça :
Circle.prototype.debug = true;
Circle.prototype.dump = function (val) {
console.log(val);
};
Bon à savoir…
1 De Da Scritch -
À priori, n’est-ce pas à l’instance d’une classe que tu veux passer le paramètre debug à true ? Ou sur toutes les instances de cette classe ?
2 De Cunégonde -
Crois quelqu’un en surcharge, c’est toujours ce qui est le plus compliqué à gérer
3 De Franck -
Da Scritch à toutes.
Cunégonde hu hu :-)