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

170
Visualizações
¿Cómo puede un método anidado acceder a las propiedades de otro objeto en una clase?

Tengo problemas para acceder a las propiedades de objeto necesarias en un método. Aquí tengo una versión simplificada de lo que estoy tratando de hacer. Tengo una clase Game que se usa para crear un nuevo objeto de juego. Una vez que se ha creado ese objeto, estoy tratando de ejecutar el método de dibujo. El método de sorteo usará información de state.house.color, pero parece que no puedo averiguar cómo acceder a él, ya que usar "esto" en dibujar no se referirá al objeto del juego. He usado .bind(this) en el pasado, pero eso no parece estar ayudando aquí, ya que necesitaría vincular un objeto, no una función. ¡Gracias por cualquier idea!

 class Game { state = { house: { color: "blue" } } assets = { house: { draw(){ //some logic here such as console.log(this.state.house.color) } } } }; let testGame = new Game(); testGame.assets.house.draw();
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

La respuesta a su problema es la función de flecha, que no anulará this .

 class Game { state = { house: { color: "blue" } } assets = { house: { draw: () => { console.log(this.state.house.color); } } } } let testGame = new Game() testGame.assets.house.draw();

También puedes usar bind (peor en este caso):

 class Game { state = { house: { color: "blue" } } assets = { house: { draw() { console.log(this.state.house.color); } } } } let testGame = new Game() testGame.assets.house.draw.bind(testGame)();
about 4 years ago · Juan Pablo Isaza Relatório

0

Si bien podría crear fácilmente una función de flecha o una función vinculada que coloque en la propiedad .assets.house.draw , la solución real es no anidar propiedades en una instancia de clase como esa. Manténgalos en el nivel superior, no intente ponerles un espacio de nombres.

Si realmente lo necesita, cree una clase separada:

 class House { constructor(color) { this.color = color; } draw() { console.log(this.color); } } class Game { house = new House("blue"); } const testGame = new Game(); testGame.house.draw();

Pasa cualquier cosa que la casa necesite del juego a su constructor.

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