user definierte Objektgleichheit für eine Menge in Harmonie (es6)

Ich habe ein Problem, bei dem ich viele Werte generiere und sicherstellen muss, dass ich nur mit eindeutigen Werten arbeite. Da ich Knoten js mit dem Flag --harmony verwende und Zugriff auf Harmony-Sammlungen habe, habe ich beschlossen, dass ein Set eine Option sein kann.

Was ich suche, ähnelt dem folgenden Beispiel:

'use strict';

function Piece(x,y){
  this.x = x  
  this.y = y
}

function Board(width,height,pieces){
 this.width = width 
 this.height = height
 this.pieces = pieces
}

function generatePieces(){
 return [
  new Piece(0,0),
  new Piece(1,1) 
 ] 
}

//boardA and boardB are two different but equivalent boards
var boardA = new Board(10,10,generatePieces()) 
var boardB = new Board(10,10,generatePieces())

var boards = new Set()
boards.add(boardA)
boards.has(boardB) //return true

m dies normalerweise in einer anderen Sprache zu erreichen, z. B. c #, müsste ich eine Equals-Funktion sowie eine Hashcode-Generierungsfunktion für Board und Piece implementieren. Da ich erwarten würde, dass die Standardobjektgleichheit auf Referenzen basiert. Oder verwenden Sie einen speziellen Typ für unveränderliche Werte (z. B. eine Case-Klasse in Scala)

Gibt es eine Möglichkeit, die Gleichheit für meine Objekte zu definieren, um mein Problem zu lösen?