Como tornar instâncias de uma classe comparáveis e colecionáveis de lixo ao mesmo tempo?
Eu estou escrevendo umclass
e deseja que as instâncias sejam comparáveis em<
, >
, ==
.
Para<
e>
, valueOf
funciona bem
==
é diferente, no entanto, mas quero ter isso também. Eu poderia facilmente implementar umisEqual
método, mas isso não é o mesm
minha solução atual é um cache para todos os objetos criado
const cache = {}
class Comparable {
constructor (id) {
if (cache[id]) return cache[id]
cache[id] = this
}
}
Dessa forma, a comparação funciona. Infelizmente, isso também bloqueia o coletor de lix
Existe outra maneira de ativar onew Comparable(42) == new Comparable(42)
, isso não impede o GC?