Mam niestandardową klasę, która ma kilku członków. Muszę porównać je ze sobą. javascript pozwala mi pisać:Jak wykonać mniej niż/więcej niż porównania na obiektach niestandardowych w javascript
var a = new MyType(1);
var b = new MyType(2);
if (a < b) { ...
, ale nie rozumiem zachowania logicznego porównania. Czy ktoś może wyjaśnić semantykę porównania < w powyższym kodzie? Czy istnieje sposób kontrolowania tego, co się dzieje, aby uzyskać właściwe zachowanie? Wiem, że mogę napisać metodę porównania dla klasy, ale ponieważ javascript pozwala mi ją pisać, zastanawiałem się, co ona myśli.
Dzięki.
Wow to jak interfejs IComparable dla JavaScript. –
@Jay przy porównywaniu obiektów dla równości ('==', '==='), zawsze będzie porównywać odniesienia (czy 2 operandy wskazują ten sam dokładny obiekt w pamięci). Musisz zdefiniować metodę taką jak '.isEqual' i nazwać ją normalnie' a.isEqual (b) ' – Esailija
Dzięki. To idealne. Bummer, że nie robi to ani == ani === pracy. Dziwne, że nie mogłem znaleźć tego rozwiązania w Internecie. – drdwilcox