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

107
Visualizações
¿Alguien puede explicar este comportamiento dentro del método?

Hola principiante aquí, lo siento por cualquier ignorancia si mostré.

 const test = { myfunction(){ console.log(this); }, myfunction3(){ function myfunction4(){ console.log(this) } return myfunction4() } }

y cuando corro

 test.myfunction3()

Recibo un objeto global como una ventana. Estoy un poco confundido sobre cómo sucedió esto. Mi pregunta es

  1. myfunction3() puede acceder a myfunction4() debido a su jerarquía? Si es así, ¿hay alguna forma de que pueda acceder a myfunction4() directamente en lugar de pasar por myfunction3()?
  2. ¿Por qué this en myfunction4() devolvió una ventana global en lugar de una referencia a myfunction4() ?

¡Gracias por tu ayuda!

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

1. No puede acceder a myfunction4 en tal método de "test.myfunction3.myfunction4()"

Porque myfunction4 no es propiedad de myfunction3 y, especialmente, test.myfunction3 no es un objeto.

2. Dado que myfunction4 no es un método, sino una función, "esto" hace referencia al objeto Window en myfunction4.

"esto" en el método se refiere al objeto principal, pero en función, se refiere a un objeto global como Ventana.

about 4 years ago · Juan Pablo Isaza Relatório

0

La razón por la que obtiene el objeto global tiene que ver con la llamada/invocación de su función y no con la ubicación de la función en sí.

Invocación, me refiero a ==> test.myFunction3()

Los métodos de objetos a menudo son un poco confusos, pero el hecho de que una función se encuentre dentro de otra función no significa nada. No se trata de la colocación de una función sino de su invocación... así que aquí lo que importa es test.myFunction3()

about 4 years ago · Juan Pablo Isaza Relatório

0

myfunction3() puede acceder a myfunction4() debido a su jerarquía? Si es así, ¿hay alguna forma de que pueda acceder a myfunction4() directamente en lugar de pasar por myfunction3()?

No puede acceder a la función directamente a través myFunction3() , pero puede devolverle una referencia, que luego puede usar. Vea a continuación donde señalo que tiene un error tipográfico en su implementación de myFunction3()

 const func4 = myFunction3(); func4();

¿Por qué esto en myfunction4() devolvió una ventana global en lugar de una referencia a myfunction4()?

Hay dos problemas, primero this en una función está vinculada en tiempo de ejecución.

En segundo lugar, debido a un error tipográfico en myFunction3() , está devolviendo el resultado de llamar a myFunction4 en lugar de devolver una referencia a la función en sí, que supongo que es lo que está tratando de hacer.

 myfunction3(){ function myfunction4(){ console.log(this) } return myfunction4; // this returns the function, rather than return the result of calling the function (drop the () ) }
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