Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

252
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!