CodeTip - Javascript: Compare class instances
Avraam Mavridis
Posted on October 24, 2018
Many times we are in situations we want to compare instances of a class, aka objects, for example in case you develop a game and you want to compare instances of a gameobject, e.g. Car
:
class Car {
constructor(speed){
this.speed = speed
}
}
Let's say we want to compare instances of a car (or sort/filter an array of them). Obviously we can do:
const car1 = new Car(100)
const car2 = new Car(120)
const car3 = new Car(90)
console.log(car2.speed > car1.speed) // true
const sorted = [car1, car2, car3].sort((a,b) => {
return a.speed - b.speed;
});
This works perfectly fine but we can do better, so we don’t have to type .speed
every time we want to compare two cars, or sort/filter an array of them. We can define a valueOf method in the Car class, the method returns the “value” of the instance.
class Car {
constructor(speed){
this.speed = speed
}
valueOf(){
return this.speed;
}
}
const car1 = new Car(100)
const car2 = new Car(120)
const car3 = new Car(90)
console.log(car2 > car1) // true
💖 💪 🙅 🚩
Avraam Mavridis
Posted on October 24, 2018
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
gyantocode Mastering JavaScript Objects: Comparison, Manipulation, and Control Techniques
November 7, 2024