"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment déterminer la classe d’un objet en JavaScript ?

Comment déterminer la classe d’un objet en JavaScript ?

Publié le 2024-12-21
Parcourir:465

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

Comprendre la nature dynamique de JavaScript : déterminer les classes d'objets

Contrairement à des langages comme Java, JavaScript n'a pas d'équivalent direct à .getClass() de Java méthode en raison de sa conception unique basée sur un prototype. Cependant, il existe diverses techniques pour remplir des fonctionnalités similaires.

Options de détermination des classes d'objets en JavaScript :

  • typeof : Renvoie le type de données (par exemple, "objet", "fonction") d'une variable.
  • instanceof: Teste si un objet appartient à une classe spécifique ou en descend.
  • obj.constructor: Pointe vers la fonction constructeur qui a créé l'objet.
  • func.prototype, proto.isPrototypeOf: Permet la vérification de l'héritage en vérifiant si un prototype est celui d'un objet prototype.

Exemples :

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

Remarque : Les outils de minification comme Uglify peuvent modifier les noms de classe. Pour éviter cela dans les outils de build comme Gulp ou Grunt, définissez le paramètre --mangle sur false.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3