Sobes.tech
Middle

Élő kódolás: határozza meg a konzolon megjelenő kimenetet a függvényekkel, nyílfüggvényekkel, objektumokkal és a kontextussal (this), call/bind

sobes.tech MI

Válasz az MI-től

A JavaScriptben a végrehajtási kontextus (this) attól függ, hogy hogyan hívják meg a függvényt. A nyílfüggvényeknek nincs saját this-ük — azokat a külső lexikális környezetből öröklik.

Példa:

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

obj.regularFunc(); // 42 — this az obj-re utal
obj.arrowFunc();   // undefined vagy a külső kontextus értéke (pl. window.value)

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

const user = { name: 'Alice' };

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

Így a call és bind lehetővé teszik, hogy explicit módon beállítsuk a this értékét a függvény hívásakor, de nem működnek nyílfüggvényekkel, mivel azok this értéke lexikálisan fixált.