Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

176
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda