Obtenga el nombre de clase de un objeto en JavaScript

Sahil Bhosale 12 octubre 2023
Obtenga el nombre de clase de un objeto en JavaScript

Un constructor se crea automáticamente dentro de la clase en la programación orientada a objetos cada vez que definimos una clase. Estará presente dentro de la clase, pero no será visible. Solo se crea cuando un programador no lo define explícitamente. Este constructor se denomina constructor predeterminado.

Estamos interesados ​​en comprender los constructores porque los constructores tienen el mismo nombre que el nombre de la clase. Entonces, es fácil para nosotros obtener el nombre de clase de un objeto en JavaScript usando su nombre de constructor.

No importa si el constructor es un constructor predeterminado o si lo crea usted (el programador); el nombre del constructor siempre será el mismo que su nombre de clase.

Obtenga el nombre de clase de un objeto usando la función constructor en JavaScript

Para crear un objeto de una clase, primero tenemos que llamar a su constructor. Después de llamar al constructor, almacenamos su referencia dentro de una variable para que luego podamos hacer lo que queramos con ese objeto. Entendamos esto con un ejemplo.

Aquí tenemos una clase vacía llamada Person. Creamos un objeto de esta clase usando la palabra clave new y llamamos a su constructor predeterminado Person(). Luego lo almacenamos dentro de una variable llamada obj.

Ahora que hemos creado un objeto de una clase Person, obtengamos el nombre de la clase del objeto con la ayuda de su constructor.

Para obtener el nombre de un constructor, podemos usar una función integrada presente dentro de JavaScript llamada constructor. Devolverá una función. Para obtener el nombre de clase específico, tenemos que usar la propiedad name de la función constructor.

Esto se muestra en el siguiente fragmento de código.

class Person {}

var obj = new Person();
console.log(obj.constructor.name);

Producción :

Person

También puede crear una función dentro de una clase que devolverá la función constructor anterior. Y después de crear un objeto de esta clase, puede llamar a esta función cualquier cantidad de veces y obtener el nombre de clase de ese objeto.

Esto se muestra en el siguiente fragmento de código.

class Person {
  getClassName() {
    return this.constructor.name;
  }
}

Aquí, tenemos que usar una palabra clave this que hará referencia al objeto actual en el que se llama al método getClassName() y devolverá su nombre de clase.

La única preocupación con esto es que el nombre del constructor cambiará después de la minimización si está minificando el JavaScript. Y si llamó a la función getClassName, devolverá algún otro nombre de clase que estará presente después de la minificación y no Person.

Además, la propiedad name no es compatible con IE9. No es una gran preocupación ya que la mayoría de los usuarios usan navegadores modernos como Chrome y Firefox.

Sahil Bhosale avatar Sahil Bhosale avatar

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

Artículo relacionado - JavaScript Object