O que é instanceof?
18/07/2023 2023-07-18 21:22O operador instanceof é uma funcionalidade presente na linguagem de programação JavaScript que permite verificar o tipo de um objeto. Ele retorna um valor booleano, ou seja, true ou false, indicando se um objeto é uma instância de uma determinada classe ou de uma classe derivada. Neste artigo, iremos explorar em detalhes o funcionamento do operador instanceof, bem como sua aplicação prática no desenvolvimento de aplicações em JavaScript.
O que é instanceof? – Uma visão geral sobre o operador de verificação de tipo
O operador instanceof é utilizado para verificar se um objeto é uma instância de uma determinada classe ou de uma classe derivada. Ele retorna true se o objeto for uma instância da classe especificada e false caso contrário. Essa verificação é feita levando em consideração a cadeia de protótipos do objeto, ou seja, ele verifica se o objeto é uma instância da classe ou de alguma classe derivada dela.
Por exemplo, considere a seguinte situação em JavaScript:
class Animal {
constructor(name) {
this.name = name;
}
}
class Dog extends Animal {
constructor(name, breed) {
super(name);
this.breed = breed;
}
}
let myDog = new Dog("Max", "Labrador");
console.log(myDog instanceof Dog); // true
console.log(myDog instanceof Animal); // true
console.log(myDog instanceof Object); // true
No exemplo acima, o objeto myDog
é uma instância da classe Dog
, que por sua vez é uma classe derivada da classe Animal
. Portanto, as verificações utilizando o operador instanceof retornam true para as classes Dog
, Animal
e Object
, já que todas estão presentes na cadeia de protótipos do objeto myDog
.
Utilizando instanceof em JavaScript – Como verificar o tipo de um objeto com precisão
O operador instanceof pode ser utilizado para verificar o tipo de um objeto de forma precisa. Ele é especialmente útil quando se trabalha com herança e polimorfismo, permitindo identificar se um objeto é uma instância de uma classe específica ou de uma classe derivada.
Além disso, é importante ressaltar que o operador instanceof também pode ser utilizado para verificar se um objeto é uma instância de uma interface ou de um tipo primitivo, como string, number ou boolean.
Por exemplo:
let myString = "Hello, world!";
let myNumber = 42;
console.log(myString instanceof String); // false
console.log(myNumber instanceof Number); // false
console.log(typeof myString === "string"); // true
console.log(typeof myNumber === "number"); // true
No exemplo acima, o operador instanceof não retorna true para as variáveis myString
e myNumber
, pois elas não são instâncias dos objetos String e Number, respectivamente. No entanto, a verificação utilizando o operador typeof retorna true para os tipos primitivos string e number, indicando que as variáveis são do tipo esperado.
Neste artigo, vimos que o operador instanceof é uma ferramenta poderosa para verificar o tipo de um objeto em JavaScript. Ele permite identificar se um objeto é uma instância de uma classe específica ou de uma classe derivada, levando em consideração a cadeia de protótipos do objeto.
Além disso, o operador instanceof também pode ser utilizado para verificar se um objeto é uma instância de uma interface ou de um tipo primitivo. No entanto, é importante ressaltar que o operador instanceof não é capaz de verificar tipos primitivos diretamente, sendo necessário utilizar o operador typeof nesses casos.
Portanto, o operador instanceof é uma ferramenta fundamental no desenvolvimento de aplicações em JavaScript, permitindo verificar o tipo de um objeto com precisão e facilitando a implementação de conceitos como herança e polimorfismo.