Comment personnaliser l'objet d'égalité pour l'Ensemble de JavaScript

Nouvelle-ES 6 (Harmonie) introduit une nouvelle Ensemble objet. L'identité de l'algorithme utilisé par l'Ensemble est similaire à === opérateur et donc pas bien adapté pour les objets de comparaison:

var set = new Set();
set.add({a:1});
set.add({a:1});
console.log([...set.values()]); //Array [ Object, Object ]

Comment personnaliser l'égalité pour Définir des objets afin de faire de profondeur de l'objet de la comparaison? Est-il quelque chose comme Java equals(Object)?

  • Qu'entendez-vous par "personnaliser l'égalité"? Javascript ne permet pas la surcharge d'opérateur, donc il est inutile de surcharger le === de l'opérateur. L'ES6 l'objet du jeu n'a pas de comparer les méthodes. Le .has() méthode et .add() méthode de travail que ce ne soit le même objet ou la même valeur pour un primitif.
  • Par "personnaliser l'égalité", je veux dire de toute façon comment le développeur peut définir certains couple d'objets pour être considérées comme égales ou non.
  • Aussi stackoverflow.com/q/10539938/632951
InformationsquelleAutor czerny | 2015-04-20