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

206
Views
¿Es posible llamar a una función en un objeto que hace referencia a sí mismo?

Tengo un objeto que se parece a esto:

 const state = [] const spells = [ { name: 'test', channelDuration: 1000, castDuration: 1000, cast: () => { state.push(THIS) // <-- } }, {...}, {...} ]

Cuando un jugador usa un hechizo, ese hechizo se almacena en el estado del juego y luego espera a que channelDuration y castDuration .

Una vez que puede cast , mira el estado y llama al método de conversión:

 State.quest.bossFightState[USER].spell.cast() state = [Spell]

En dicho lanzamiento, necesito empujar el hechizo a una nueva matriz llamada statuses . Sin embargo, no puedo hacer referencia al objeto dentro del método de lanzamiento sin usar algunas funciones auxiliares adicionales para agarrar el hechizo específico. Y no quiero pasar agregar un spell de parámetro en el método de lanzamiento porque eso parece tonto.

¿Algunas ideas? O es un método de ayuda el camino a seguir aquí.

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

0

Una opción sería usar una function o método en lugar de una función de flecha, de modo que .cast tenga un this que se refiera al objeto externo.

 const state = [] const spells = [ { name: 'test', cast() { state.push(this) } } ] spells[0].cast(); console.log(state);

about 4 years ago · Juan Pablo Isaza Report

0

Me sorprende que nadie más haya captado esto... Estás usando this dentro de una función de flecha. this palabra clave actúa de manera diferente en las funciones de flecha; lea más sobre eso aquí

 const state = []; const spells = [ { name: 'test', cast: function () { state.push(this); }, }, ]; spells[0].cast(); console.log(state);

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!