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

298
Vistas
What happens to existing objects when you declare prototype inheritance?

//debugger;

function User(email,name) {
    this.email = email;
    this.name = name;
    this.online = false;
}

User.prototype.login = function() {
    this.online = true;
    console.log('this.name is now online');
}

function Admin(...args) {
    User.apply(this, args);
    this.title = 'admin';
}

const admin1 = new Admin('admin@admin.com', 'josh');

Admin.prototype.deleteUser = function() {
    console.log('deleted user');
}

Admin.prototype = Object.create(User.prototype);

const admin2 = new Admin('admin2@admin.com', 'barry');

console.log(admin1); //admin1 will have the deleteUser() method in its prototype, and DIDN'T update after Admin inherited the User prototype 

console.log(admin2); //admin1 will have the login() method and NOT deleteUser()

Why did admin1's prototype update when I made the deleteUser() method, but why did it not update at all when I inherited User.prototype?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

I realized that when I declared deleteUser() I was simply adding onto the prototype object of Admin, but when I inherited User's prototype I completely reassigned Admin's prototype. For example, if I declared x = {a:1} I could do x.b = 2 and then x is now {a:1, b:2}. BUT if I do x = {a:1} and then right after do x = {b:2}, it completely replaces the value of x, not add onto it.

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