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

176
Vistas
¿Cuál es el punto de crear una cadena de prototipos cuando ya tenemos Object.prototype.use(object) en JS?

He estado aprendiendo sobre prototipos en Javascript en un curso de Pluralsight. Y tengo cierta confusión al respecto.

Aquí está el ejemplo. Tengo 2 constructores Persona y Estudiante:

 function Person(firstName, lastName, age) { this.firstName = firstName; this.lastName = lastName; this.age = age; this.getFullName = function() { console.log(this.firstName + this.lastName) } } function Student(firstName, lastName, age) { this._enrolledCourses = []; this.enroll = function (courseId) { this._enrolledCourses.push(courseId); }; this.getCourses = function () { return this._enrolledCourses; }; }

Luego crea una instancia de Student:

 let michael = new Student("Michael", "Nguyen", 22);

Ahora, en el tutorial, dice que para que michael herede todo de Person , hay 2 pasos:

  • Paso 1: Crea una cadena de prototipos:
 Student.prototype = Object.create(Person.prototype); Student.prototype.constructor = Student;
  • Paso 2: llame a la Person dentro Student :
 function Student(firstName, lastName, age) { Person.call(this, firstName, lastName, age); <---- this line this._enrolledCourses = []; this.enroll = function (courseId) { this._enrolledCourses.push(courseId); }; this.getCourses = function () { f; return this._enrolledCourses; }; }

Sin embargo, si elimino el paso 1 y solo sigo con el paso 2, el resultado sigue siendo el mismo. michael todavía puede heredar todo de Person . La cosa es, ¿cuál es el punto del paso 1 de todos modos? Si elimino el paso 2 y solo me llevo bien con el paso 1, michael no podrá heredar nada de Person .

Para su información, aquí está la URL del curso: https://app.pluralsight.com/course-player?clipId=f1feb535-bbdd-4255-88e3-ed7079f81e4e

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

0

Esto se debe a que sus constructores están agregando todas las propiedades a this , no está usando los prototipos.

Normalmente, los métodos se agregan al prototipo, no a cada instancia, por ejemplo

 function Person(firstName, lastName, age) { this.firstName = firstName; this.lastName = lastName; this.age = age; } Person.prototype.getFullName = function() { console.log(this.firstName + this.lastName) }

Si no crea la cadena de prototipos, Student no heredará un método definido de esta manera.

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