Sobre o operador instanceof é usado para verificar se um objeto é uma instância de uma classe ou função específica. Ele retorna um valor booleano true se o objeto for uma instância da classe ou função especificada e false caso contrário. O operador instanceof verifica a cadeia de protótipos do objeto para determinar se a classe ou função especificada está presente em qualquer lugar na cadeia de protótipos. Portanto, ele pode ser usado para verificar se um objeto é uma instância de uma classe pai ou de uma classe filha. Eis um exemplo de código usando o instanceof com um constructor:
function Animal() { this.name = "Animal"; }
function Cachorro() { this.breed = "Labrador"; }
Cachorro.prototype = new Animal();
const meuCachorro = new Cachorro();
console.log(meuCachorro instanceof Cachorro); // true console.log(meuCachorro instanceof Animal); // true console.log(meuCachorro instanceof Object); // true console.log(meuCachorro instanceof Array); // false
Neste exemplo, Animal é uma função construtora que define uma propriedade nome. Cachorro é outra função construtora que herda de Animal usando a propriedade prototype. meuCachorro é uma instância de Cachorro.
Ao usar o instanceof com meuCachorro, podemos verificar se ele é uma instância de Cachorro, Animal, Object ou qualquer outra classe ou função construtora. Neste caso, meuCachorro é uma instância de Cachorro, Animal e Object, mas não é uma instância de Array.