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.