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

185
Vistas
Necesita una explicación para 'bajo el capó' de get y set en JavaScript

Dado el código a continuación, aunque el nombre del parámetro está al principio, firstName, después de configurarlo con setter y observar las propiedades de un objeto, se convierte en _firstName. Vengo de un entorno de desarrollo de Java y esto no me parece lógico. ¿Alguien puede explicar, por favor?

 class Person { constructor(firstName, DOB, sport) { this.firstName = firstName; this.DOB = DOB; this.sport = sport; } get firstName() { return this._firstName; } set firstName(firstName) { this._firstName = firstName; } } const person1 = new Person('Marko', '2002', 'tennis');`

Objeto después de person1.firstName = 'Luka';

 (Person {_firstName: 'Luka', DOB: '1256', _sport: 'tennis'} DOB: "1256" _firstName: "Luka" _sport: "tennis" DO: undefined firstName: (...) sport: (...) [[Prototype]]: Object)

person1.firstName = 'Luka'; y esperaba que el campo del objeto permaneciera firstName pero se convirtió en _firstName (con subrayado). Veo que estoy haciendo este cambio en esta línea this._firstName = firstName; pero no entiendo cómo se puede anular el nombre de la variable

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

0

this.firstName es un método que establece la propiedad this._firstName .

Llamar al método setter this.firstName = "Marko" funciona de manera similar a llamar a un método estándar como this.firstName("Marko") . Como está usando el método en su constructor, "parece" que está configurando la propiedad this.firstName cuando en realidad está usando el método this.firstName para establecer la propiedad this._firstName .

Modificar el método this.firstName ayuda a entender esto:

 class Person { constructor(firstName, DOB, sport) { this.firstName = firstName; this.DOB = DOB; this.sport = sport; } get firstName() { return this._firstName; } set firstName(firstName) { //this will output on the console whenever the method is being used console.log("setter method used"); this._firstName = firstName; } } const person1 = new Person('Marko', '2002', 'tennis');

Debería ver en la consola que el método setter se usó una vez. Ahora intente cambiar la primera línea de su constructor a this._firstName = firstName;

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