Override the behavior of instanceof

instanceof doesn't work for primitive types.
If you want to use instanceof all the time, then you can override the behavior of instanceof by implementing a static method with the key of Symbol.hasInstance. In the following code, we create a class called PrimitiveNumber that checks if a value is a number:
class PrimitiveNumber {
static [Symbol.hasInstance](value) {
return typeof value === 'number';
}
}
12345 instanceof PrimitiveNumber; // true
'helloworld' instanceof PrimitiveNumber; // false