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

172
Views
La clase estática de javascript detecta qué método llama al anterior

¡usted me podría ayudar! En el método de emisión , cómo verificar si llaman al método de sala anterior o no.
En los dos casos siguientes:

 // case 1: A.room('aa').emit('a1', 'aaa') // case 2: A.emit('a2', 'aaa')

esta es una clase a

 class A { static room(r) { this.r = r return this } static emit(event, data) { //todo console.log('this.r', this.r, {event, data}) } }

¡Gracias por tu tiempo!

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

0

Debe almacenar valores de flujo como r por separado para cada llamada, lo cual no es un objetivo razonable para las clases estáticas porque usa la misma clase una y otra vez, en lugar de instancias separadas. Soluciones posibles:

1. Ya no static :

 class A { room(r) { this.r = r return this } emit(event, data) { console.log('this.r', this.r, {event, data}) } } new A().room('aa').emit('a1', 'aaa') // r = 'aa' new A().emit('a2', 'aaa') // r = undefined

2. Devolver instancias con alcances propios ( A se mantiene estático):

 class A { static room(r) { return new B(r) } static emit(...args) { return new B().emit(...args) } } class B { constructor(r) { this.r = r } emit(event, data) { console.log('this.r', this.r, {event, data}) return this } } A.room('aa').emit('a1', 'aaa') // r = 'aa' A.emit('a2', 'aaa') // r = undefined

3. Delegue la lógica a la clase no estática ( A se mantiene estática):

 class B { room(r) { this.r = r return this } emit(event, data) { console.log('this.r', this.r, {event, data}) } } class A { static room(...args) { return new B().room(...args); } static emit(...args) { return new B().emit(...args); } } A.room('aa').emit('a1', 'aaa') // r = 'aa' A.emit('a2', 'aaa') // r = undefined

... y así.

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!