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

145
Views
JS: usando el objeto de la clase principal

Tengo dos clases y quiero tener un Objeto con valores que estén disponibles para ambas clases. Este es mi código de muestra:

 class Class1 { constructor() { this.things = []; this.testValue = "one two three"; } doThings() { for(let i = 0; i < 10; i++) { this.things[i] = "test "+i; } console.log("Class 1 doThings(): ", this.things); } getContent() { console.log("getContent Class1: ", this.things); } } class Class2 extends Class1 { constructor(elmnt){ super(); } getContent() { console.log("Class 2 getContent(): ", this.things); } getValue() { console.log("Value: ", this.testValue) } } let handle1 = new Class1(); let handle2 = new Class2(); handle1.getContent(); // empty because this.things() did not run handle1.doThings(); // create things... handle1.getContent(); // this shows the things handle2.getContent(); // this is empty even is doThings() is called before to produce things... handle2.getValue();

¿Por qué handle2.getContent() no muestra Things-Array? Y (más importante) ¿qué sería lo correcto?

Creo que super() anula this.things... ¿Es eso cierto? ¿Cómo podría prevenir esto?

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

El hecho de que haya ejecutado doThings() en handle1 no significa que se doThings() en handle2 . Para obtener el resultado que desea, debe ejecutar doThings() en handle2

 class Class1 { constructor() { this.things = []; this.testValue = "one two three"; } doThings() { for(let i = 0; i < 10; i++) { this.things[i] = "test "+i; } console.log("Class 1 doThings(): ", this.things); } getContent() { console.log("getContent Class1: ", this.things); } } class Class2 extends Class1 { constructor(elmnt){ super(); } getContent() { console.log("Class 2 getContent(): ", this.things); } getValue() { console.log("Value: ", this.testValue) } } let handle1 = new Class1(); let handle2 = new Class2(); handle1.getContent(); // empty because this.things() did not run handle1.doThings(); // create things... handle1.getContent(); // this shows the things handle2.doThings() // This needs to run handle2.getContent(); // this is empty even is doThings() is called before to produce things... handle2.getValue();

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!