Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

91
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda