Avatar ·

¿Cómo funciona la palabra clave this en JavaScript y cuándo debe usarse?

¡Hola a todos! Soy nuevo en JavaScript y constantemente me confundo con la palabra clave `this`. Leí la documentación, pero parece demasiado complicada. Tengo este código: ```javascript const user = { name: 'Anna', greet: function() { console.log('Hola, ' + this.name); } }; const greetFunc = user.greet; user.greet(); // Muestra "Hola, Anna" — ¡funciona! greetFunc(); // Muestra "Hola, undefined" — ¿por qué? ``` Cuando llamo a `user.greet()`, todo funciona. Pero si guardo el método en una variable y la llamo, `this.name` se vuelve `undefined`. ¿Por qué sucede esto? Y además: he oído que `this` se comporta de manera diferente en arrow functions y en funciones normales. ¿Cómo puedo entender a qué se referirá `this` en mi código? ¿Cuándo debería usar `this` y cuándo es mejor pasar el objeto como parámetro? Agradecería una explicación simple con ejemplos.