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

253
Vistas
Pregunta de sintaxis de programación orientada a objetos, pasar un método de clase de un archivo a otro

Tengo dos archivos, employee.js

 const Manager = require('./manager.js'); let manager = new Manager(); class Employee { constructor(name, title, salary, boss=null) { this.name = name; this.title = title; this.salary = salary; this.boss = boss; manager.addEmployee(this.Employee); } } module.exports = Employee;

Y administrador.js

 const Employee = require('./employee.js'); class Manager extends Employee { constructor(name, salary, title, boss=null) { // this.name = name; // this.title = title; // this.salary = salary; // this.boss = boss; super(name, salary, title, boss); this.managedEmployees = []; } addEmployee(Employee) { this.managedEmployees.push(Employee); } } let annie = new Manager('annie', 100000, 'Director'); let alvy = new Employee('alvy', 75000, 'Analyst', annie); console.log(annie); module.exports = Manager;

Estoy tratando desesperadamente de encontrar qué sintaxis me permitiría tomar el método addEmployee(Employee) y llamarlo en el constructor de la clase Employee. Quiero que Gerente sea hijo de Empleado y tenga una matriz de todos los empleados bajo el gerente. El método se está insertando en la matriz, pero no puedo entender qué debería hacer para console.log(annie); para terminar con esta entrada

 <ref *1> Manager { name: 'Annie', salary: 100000, title: 'Director', manager: null, employees: [ Employee { name: 'Alvy', salary: 75000, title: 'Analyst', manager: [Circular *1] } ] }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Configure su clase de empleado de esta manera:

 class Employee { constructor(name, title, salary, boss=null) { this.name = name; this.title = title; this.salary = salary; this.boss = boss; if (boss) { boss.addEmployee(this); } } }

Está pasando una instancia de Manager, por lo que si no es nulo, puede llamar a un método en eso. Tenga en cuenta que solo desea pasar this como entrada para addEmployee , ya que this.Employee está tratando de acceder a una propiedad o método en esa clase que no existe.

La salida de la consola se verá así:

 Manager { name: "annie", title: 100000, salary: "Director", boss: null, managedEmployees: [ Employee { name: "alvy", title: 75000, salary: "Analyst", boss:Manager {...} } ] }

También notará que ha intercambiado el orden de los parámetros por título/salario en su constructor Empleado.

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