Sobes.tech
Middle

Codificação ao vivo: determinar a saída no console para o código com funções, funções de seta, objetos e contexto (this), call/bind

sobes.tech IA

Resposta da IA

No JavaScript, o contexto de execução (this) depende da forma como a função é chamada. As funções de seta não têm o seu próprio this — elas herdam-no do ambiente léxico externo.

Exemplo:

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

obj.regularFunc(); // 42 — this refere-se a obj
obj.arrowFunc();   // undefined ou valor do contexto externo (por exemplo, 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

Assim, call e bind permitem definir explicitamente o this ao chamar a função, mas não funcionam com funções de seta, pois o this delas é fixado lexicalmente.