Bémol

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…

Ajouter un commentaire

Les champs suivis d'un * sont obligatoires

Les commentaires peuvent être formatés en utilisant la syntaxe Markdown Extra.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/15169

Haut de page