Maison  >  Article  >  interface Web  >  Comment puis-je déterminer la « classe » d'un objet JavaScript ?

Comment puis-je déterminer la « classe » d'un objet JavaScript ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-18 21:59:02983parcourir

How Can I Determine the

Découvrir la classe d'un objet JavaScript : plonger dans les options

Contrairement à la méthode .getClass() de Java, JavaScript n'a pas d'équivalent exact. Cela est en grande partie dû à sa nature basée sur des prototypes, qui contraste avec le paradigme basé sur les classes de Java.

Approche du défi :

En fonction de l'utilisation prévue de .getClass( ), JavaScript propose plusieurs options :

1. typeof :

Cet opérateur détermine le type de données d'une variable. Bien qu'il puisse différencier les objets, les fonctions et autres primitives, il ne fournira pas d'informations sur la classe.

2. instanceof:

Cet opérateur vérifie si un objet est une instance d'un constructeur. Par exemple :

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

foo instanceof Foo; // Returns true

3. obj.constructor :

Cette propriété fait référence à la fonction constructeur d'un objet. Bien que cela puisse être utile, cela peut donner des résultats trompeurs si l'objet a été modifié.

4. func.prototype, proto.isPrototypeOf :

Les prototypes offrent un moyen plus robuste de vérifier les relations de classe.

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

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

Remarques supplémentaires :

  • La compilation de code Uglify peut modifier les noms de classes non globales. Pour éviter cela, utilisez le paramètre --mangle false dans gulp ou grunt.
  • Bien que ces options fournissent différents degrés d'informations sur la classe, elles peuvent ne pas toujours émuler complètement la fonctionnalité .getClass() de Java. Pensez à adapter votre approche pour vous aligner sur le modèle basé sur un prototype de JavaScript.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn