Obtenir le nom de classe d'un objet en JavaScript
Un constructeur est automatiquement créé à l’intérieur de la classe dans la programmation orientée objet chaque fois que nous définissons une classe. Il sera présent à l’intérieur de la classe, mais il ne sera pas visible. Il n’est créé que lorsqu’un programmeur ne le définit pas explicitement. Ce constructeur est appelé constructeur par défaut.
Nous sommes intéressés à comprendre les constructeurs car les constructeurs ont le même nom que le nom de la classe. Ainsi, il nous est facile d’obtenir le nom de classe d’un objet en JavaScript en utilisant son nom de constructeur.
Peu importe que le constructeur soit un constructeur par défaut ou que vous le créiez (le programmeur) ; le nom du constructeur sera toujours le même que son nom de classe.
Obtenir le nom de classe d’un objet à l’aide de la fonction constructor
en JavaScript
Pour créer un objet d’une classe, nous devons d’abord appeler son constructeur. Après avoir appelé le constructeur, nous stockons sa référence dans une variable afin que nous puissions ensuite faire ce que nous voulons avec cet objet. Comprenons cela avec un exemple.
Ici, nous avons une classe vide appelée Person
. Nous créons un objet de cette classe en utilisant le mot-clé new
et appelons son constructeur par défaut Person
. Ensuite, nous le stockons dans une variable appelée obj
.
Maintenant que nous avons créé un objet d’une classe Person
, récupérons le nom de la classe de l’objet à l’aide de son constructeur.
Pour obtenir le nom d’un constructeur, nous pouvons utiliser une fonction intégrée présente dans JavaScript appelée constructor
. Il renverra une fonction. Pour obtenir le nom de classe spécifique, nous devons utiliser la propriété name
de la fonction constructor
.
Ceci est illustré dans l’extrait de code ci-dessous.
class Person {}
var obj = new Person();
console.log(obj.constructor.name);
Production :
Person
Vous pouvez également créer une fonction à l’intérieur d’une classe qui renverra la fonction constructor
ci-dessus. Et après avoir créé un objet de cette classe, vous pouvez appeler cette fonction autant de fois que vous le souhaitez et obtenir le nom de classe de cet objet.
Ceci est illustré dans l’extrait de code ci-dessous.
class Person {
getClassName() {
return this.constructor.name;
}
}
Ici, nous devons utiliser un mot-clé this
qui référencera l’objet courant sur lequel la méthode getClassName()
est appelée et retournera son nom de classe.
Le seul problème avec cela est que le nom du constructeur changera après la minification si vous minifiez le JavaScript. Et si vous avez appelé la fonction getClassName
, elle renverra un autre nom de classe qui sera présent après minification et non Person
.
De plus, la propriété name
n’est pas prise en charge sous IE9. Ce n’est pas un gros problème car la plupart des utilisateurs utilisent des navigateurs modernes comme Chrome et Firefox.
Sahil is a full-stack developer who loves to build software. He likes to share his knowledge by writing technical articles and helping clients by working with them as freelance software engineer and technical writer on Upwork.
LinkedIn