Sobes.tech
Middle

Codificación en vivo: determinar la salida en la consola para el código con funciones, funciones flecha, objetos y contexto (this), call/bind

sobes.tech AI

Respuesta de la IA

En JavaScript, el contexto de ejecución (this) depende de cómo se llama a la función. Las funciones flecha no tienen su propio this — heredan el suyo del entorno léxico externo.

Ejemplo:

const obj = {
  value: 42,
  regularFunc: function() {
    console.log(this.value);
  },
  arrowFunc: () => {
    console.log(this.value);
  }
};

obj.regularFunc(); // 42 — this hace referencia a obj
obj.arrowFunc();   // undefined o el valor del contexto externo (por ejemplo, window.value)

// Uso de call/bind:
function show() {
  console.log(this.name);
}

const user = { name: 'Alice' };

show.call(user); // Alice
const boundShow = show.bind(user);
boundShow(); // Alice

Por lo tanto, call y bind permiten establecer explícitamente this al llamar a la función, pero no funcionan con funciones flecha, ya que su this está fijado léxicamente.