Sobes.tech
Middle

Codare live: determinați ieșirea în consolă pentru codul cu funcții, funcții săgeată, obiecte și context (this), call/bind

sobes.tech AI

Răspuns de la AI

În JavaScript, contextul de execuție (this) depinde de modul în care este apelată funcția. Funcțiile săgeată nu au propriul this — moștenesc din mediul lexical exterior.

Exemplu:

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

obj.regularFunc(); // 42 — this face referire la obj
obj.arrowFunc();   // undefined sau valoarea din contextul extern (de exemplu, window.value)

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

const user = { name: 'Alice' };

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

Astfel, call și bind permit setarea explicită a this la apelarea funcției, dar nu funcționează cu funcțiile săgeată, deoarece this-ul lor este fixat lexical.