"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo se puede determinar la clase de un objeto en JavaScript?

¿Cómo se puede determinar la clase de un objeto en JavaScript?

Publicado el 2024-12-21
Navegar:384

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

Comprensión de la naturaleza dinámica de JavaScript: determinación de clases de objetos

A diferencia de lenguajes como Java, JavaScript carece de un equivalente directo a .getClass() de Java método debido a su diseño único basado en prototipos. Sin embargo, existen varias técnicas para cumplir con una funcionalidad similar.

Opciones para determinar clases de objetos en JavaScript:

  • typeof: Devuelve el tipo de datos (por ejemplo, "objeto", "función") de una variable.
  • instanceof: Prueba si un objeto pertenece a una clase específica o desciende de ella.
  • obj.constructor: Apunta a la función constructora que creó el objeto.
  • func.prototype, proto. isPrototypeOf: Permite la verificación de herencia comprobando si un prototipo es un objeto. prototipo.

Ejemplos:

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: Las herramientas de minificación como Uglify pueden modificar los nombres de las clases. Para evitar esto en herramientas de compilación como Gulp o Grunt, establezca el parámetro --mangle en falso.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3