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

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

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 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!