"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como você pode determinar a classe de um objeto em JavaScript?

Como você pode determinar a classe de um objeto em JavaScript?

Publicado em 2024-12-21
Navegar:609

How Can You Determine the Class of an Object in JavaScript?

Compreendendo a natureza dinâmica do JavaScript: determinando classes de objetos

Em contraste com linguagens como Java, o JavaScript não possui um equivalente direto ao .getClass() do Java método devido ao seu design exclusivo baseado em protótipo. No entanto, existem várias técnicas para cumprir funcionalidades semelhantes.

Opções para determinar classes de objetos em JavaScript:

  • typeof: Retorna o tipo de dados (por exemplo, "objeto", "função") de uma variável.
  • instanceof: Testa se um objeto pertence a uma classe específica ou é descendente dela.
  • obj.constructor: Aponta para a função construtora que criou o objeto.
  • func.prototype, proto. isPrototypeOf: Permite verificação de herança verificando se um protótipo é um objeto protótipo.

Exemplos:

function Foo() {}
var foo = new Foo();

typeof Foo; // == "function"
typeof foo; // == "object"

foo instanceof Foo; // == true
foo.constructor.name; // == "Foo"
Foo.name // == "Foo"

Foo.prototype.isPrototypeOf(foo); // == true

Foo.prototype.bar = function (x) {return x x;};
foo.bar(21); // == 42

Nota: Ferramentas de minificação como Uglify podem modificar nomes de classes. Para evitar isso em ferramentas de construção como Gulp ou Grunt, defina o parâmetro --mangle como false.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3