все равно проверил бы строгую идентичность объекта, это было бы здорово. Первоначально я не делал этого явно, чтобы сосредоточить свой вопрос.
уclass
и хотите, чтобы случаи были сопоставимы<
, >
, ==
.
За<
а также>
, valueOf
работает отлично.
==
отличается, однако, но я хочу иметь это также. Я мог бы легко реализоватьisEqual
метод, но это не то же самое.
Мое текущее решение - это кеш для всех созданных объектов:
const cache = {}
class Comparable {
constructor (id) {
if (cache[id]) return cache[id]
cache[id] = this
}
}
Таким образом, сравнение работает. К сожалению, это также блокирует сборщик мусора.
Есть ли другой способ включенияnew Comparable(42) == new Comparable(42)
, что не мешает GC?