O que é instanceof e como usá-lo para verificar tipos de objetos?
Em JavaScript, o operador instanceof
é utilizado para verificar se um objeto é uma instância de uma determinada classe ou função construtora. Esse operador é essencial quando você precisa garantir que um objeto é do tipo esperado, especialmente em sistemas mais complexos onde a validação de tipos pode ser crucial para evitar erros em tempo de execução.
Como funciona o operador instanceof?
O operador instanceof
verifica se um objeto pertence a um tipo ou classe específica. Ele retorna true
se o objeto for uma instância da classe ou função construtora especificada e false
caso contrário. Esse operador pode ser utilizado para verificar se um objeto foi criado a partir de uma função construtora ou de uma classe em JavaScript.
Exemplo básico de uso do instanceof
:
function Animal(nome) {
this.nome = nome;
}
const cachorro = new Animal('Rex');
console.log(cachorro instanceof Animal); // true
console.log(cachorro instanceof Object); // true
console.log(cachorro instanceof Array); // false
O que o código está fazendo: O operador instanceof
verifica se o objeto cachorro
é uma instância da função construtora Animal
. Como cachorro
foi criado com new Animal('Rex')
, ele é uma instância de Animal
, retornando true
. Além disso, cachorro
também é uma instância de Object
, que é a classe base de todos os objetos em JavaScript, mas não é uma instância de Array
.
Verificando tipos de objetos com instanceof
O operador instanceof
pode ser utilizado para validar tipos de objetos em vários cenários. Essa técnica é muito útil para garantir que um objeto esteja corretamente tipado antes de realizar alguma operação nele.
Exemplo de verificação com objetos de diferentes classes:
class Carro {
constructor(marca) {
this.marca = marca;
}
}
class Moto {
constructor(modelo) {
this.modelo = modelo;
}
}
const meuCarro = new Carro('Ford');
const minhaMoto = new Moto('Honda');
console.log(meuCarro instanceof Carro); // true
console.log(meuCarro instanceof Moto); // false
console.log(minhaMoto instanceof Moto); // true
O que o código está fazendo: O operador instanceof
é usado para verificar se os objetos meuCarro
e minhaMoto
são instâncias das classes Carro
e Moto
, respectivamente. Como meuCarro
é uma instância de Carro
, a primeira verificação retorna true
, enquanto a verificação meuCarro instanceof Moto
retorna false
.
Como usar instanceof com herança?
Em JavaScript, quando você utiliza herança prototípica (ou classes), o operador instanceof
também verifica a cadeia de protótipos, o que significa que ele pode identificar se um objeto é uma instância de uma classe pai, mesmo que o objeto tenha sido criado de uma classe filha.
Exemplo de verificação com herança:
class Animal {
constructor(nome) {
this.nome = nome;
}
}
class Cachorro extends Animal {
constructor(nome, raca) {
super(nome);
this.raca = raca;
}
}
const rex = new Cachorro('Rex', 'Labrador');
console.log(rex instanceof Cachorro); // true
console.log(rex instanceof Animal); // true
O que o código está fazendo: Aqui, rex
é uma instância de Cachorro
, mas também é uma instância de Animal
, pois Cachorro
herda de Animal
. O operador instanceof
leva em consideração essa cadeia de herança, retornando true
para ambas as verificações.
Cuidados ao usar instanceof
Embora o operador instanceof
seja muito útil, é importante lembrar que ele verifica se um objeto é uma instância de uma função construtora ou classe específica. Em alguns casos, o uso de instanceof
pode ser problemático se a cadeia de protótipos for alterada dinamicamente ou se você estiver lidando com objetos criados em contextos diferentes (como em iframes ou com múltiplos ambientes de execução).
Conclusão
O operador instanceof
é uma ferramenta poderosa em JavaScript para verificar a relação de herança e a tipagem de objetos. Usar corretamente esse operador pode garantir que seu código esteja lidando com os tipos esperados, prevenindo erros e tornando a lógica do seu programa mais robusta e fácil de manter.
Como utilizar o operador instanceof para validar tipos de objetos em JavaScript
Em JavaScript, o operador instanceof
é fundamental para verificar se um objeto é uma instância de uma classe ou função construtora. Seu uso é comum para validar tipos de objetos e garantir que o código execute operações adequadas com base na tipagem correta.
Algumas aplicações:
- Validação de tipos de objetos antes de executar operações específicas, garantindo que o código lide com dados esperados.
- Uso em estruturas de herança, verificando se um objeto é uma instância de uma classe ou de suas classes pai.
- Garantir a integridade de dados em sistemas mais complexos, onde a verificação do tipo de objetos é necessária para o controle do fluxo de execução.
Dicas para quem está começando
- Entenda a diferença entre instâncias e protótipos antes de usar o operador
instanceof
para verificar tipos de objetos. - Pratique criando classes e objetos com herança para ver como
instanceof
pode ser útil ao lidar com diferentes tipos de objetos. - Experimente usar
instanceof
em diferentes cenários, como funções construtoras e classes, para garantir que seu código esteja validando corretamente os tipos de objetos. - Lembre-se de que
instanceof
verifica a cadeia de protótipos, então mesmo que um objeto seja instanciado por uma classe filha, ele ainda pode ser considerado uma instância da classe pai.

Andressa Maria
Desenvolvedora sênior com forte atuação em PHP, JavaScript e tecnologias de backend.
Mais sobre o autor