Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

86
Vistas
¿La forma correcta de heredar el prototipo de un constructor de objetos?

En el siguiente código, ¿cuál es la forma correcta de heredar el prototipo de un constructor de objetos? Quiero que el prototipo de administrador tenga el método de 'inicio de sesión' que se adjuntó previamente al prototipo de usuario. He probado ambos y no estoy exactamente seguro de cuál es la forma correcta.

 function User(email, name) { this.email = email; this.name = name; this.online = false; } User.prototype.login = function() { this.online = true; console.log(this.email, 'has logged in'); } function Admin(...args) { User.apply(this, args); this.role = 'super admin'; } Admin.prototype = Object.create(User.prototype); //option 1 Admin.prototype = User.prototype; //option 2
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

La opción 1 es definitivamente el mejor enfoque, porque crea un nuevo objeto que hereda de User.prototype pero que no es lo mismo.

La opción 2 significa que cualquier cambio en Admin.prototype se reflejará exactamente en User.prototype , lo cual no es deseable; con ese enfoque, son exactamente el mismo objeto.

Manifestación:

 function User(email, name) { this.email = email; this.name = name; this.online = false; } User.prototype.login = function() { this.online = true; console.log(this.email, 'has logged in'); } function Admin(...args) { User.apply(this, args); this.role = 'super admin'; } Admin.prototype = User.prototype; //option 2 Admin.prototype.getAdminInfo = function() { console.log('getting admin info'); } const user = new User('useremail'); user.getAdminInfo();

Debe usar Admin.prototype = Object.create(User.prototype); en cambio. De esta manera, los métodos en el usuario estarán disponibles en el administrador, pero también podrá crear métodos separados solo para administradores sin cambiar el usuario.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda