Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

221
Vistas
La función de flecha de Javascript tiene un comportamiento extraño con la palabra clave "esta"

Esta función de flecha imprime la versión de cadena concatenada de la matriz correctamente:

 var tahoe = { resorts: ["Kirkwood","Squaw","Alpine","Heavenly","Northstar"], print: function(delay=1000) { setTimeout( () => console.log(this.resorts.join(",")), delay ) } } tahoe.print()

Si entiendo correctamente, si uso una función normal dentro de setTimeout , no funcionará, porque setTimeout requiere una función anidada que siempre se evalúa en el ámbito global, mientras que la matriz se define dentro del ámbito del objeto. Entonces se usa la función de flecha que funciona en el alcance del objeto.

Entonces, ¿cómo es que poner la función de print como función de flecha también invierte el problema nuevamente?

 var tahoe = { resorts: ["Kirkwood","Squaw","Alpine","Heavenly","Northstar"], print: (delay=1000) => { setTimeout(() => { console.log(this.resorts.join(",")) }, delay) } } tahoe.print()

esto no funciona El libro lo explica así:

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

¿Alguien puede explicar qué significa esto y por qué funciona así? ¿Cuál es la diferencia exacta entre los dos casos?

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda