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

243
Vistas
¿Cómo debería ser el resultado de una clase de JavaScript?

Estoy intentando usar el inquirer para recopilar la entrada del usuario, que se convierte en un objeto, luego se pasa a un constructor de clase. Todo parece funcionar de la manera en que quiero que acepte la matriz resultante de objetos después de que se pasan, aunque las clases salen de una manera que me confunde.

cuando consuelo. registro la matriz que contiene los objetos que devuelven mis clases, esto es lo que sale:

 [ Manager { name: 'bob', id: '24', email: 'bob.com', officeNumber: '1' }, Engineer { name: 'jack', id: '347', email: 'jack.com', github: 'jackolantern' }, Intern { name: 'sally', id: '987', email: 'sally.com', school: 'UCF' } ]

Aquí hay un ejemplo de una de las clases:

 class Manager extends Employee { constructor (employeeObj) { super (employeeObj); this.name = employeeObj.name; this.id = employeeObj.id; this.email = employeeObj.email; this.officeNumber = employeeObj.officeNumber; } getOfficeNumber () { return this.officeNumber; } getRoll () { return "Manager"; } } module.exports = Manager;

y así es como se pasan los objetos a las clases:

 const prompts = async () => { let employeeObj = {}; const employee = await inquirer.prompt(addEmployee); switch(employee.addEmployee){ case 'Manager': employeeObj = await managerQuestions(); const manager = new Manager(employeeObj); output.push(manager); if(employeeObj.addAnother){ return prompts(); } else { complete(); } break; case 'Engineer': employeeObj = await engineerQuestions(); const engineer = new Engineer(employeeObj) output.push(engineer) if(employeeObj.addAnother){ return prompts(); } else { complete(); } break; case 'Intern': employeeObj = await internQuestions(); const intern = new Intern(employeeObj) output.push(intern) if(employeeObj.addAnother){ return prompts(); } else { complete(); } break; default: console.log('you have reached the default switch statement. thant should not happen. Please try again!'); } }

lo que parece que no puedo entender es por qué el "rollo" para cada objeto (Gerente, Ingeniero, Pasante) se coloca fuera del objeto correspondiente y no dentro de él. Pude agregar this.roll = "manager" dentro del constructor y, como era de esperar, agregó una propiedad llamada roll con un valor de "manager" que funcionará bien para lo que necesito hacer, pero ¿cómo obtengo deshacerse de ese gerente, ingeniero y pasante que aparece antes de cada objeto en la matriz de salida, o se puede mover dentro del objeto?

gracias por tomarse el tiempo para leer todo esto.

about 4 years ago · Juan Pablo Isaza
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