Middle
Živý kód: urči výstup v konzole pre kód s funkciami, šípovými funkciami, objektmi a kontextom (this), call/bind
sobes.tech AI
Odpoveď od AI
V JavaScripte závisí kontext vykonávania (this) od spôsobu, akým je funkcia volaná. Šípové funkcie nemajú vlastné this — dedí ho z vonkajšieho lexikálneho prostredia.
Príklad:
const obj = {
value: 42,
regularFunc: function() {
console.log(this.value);
},
arrowFunc: () => {
console.log(this.value);
}
};
obj.regularFunc(); // 42 — this odkazuje na obj
obj.arrowFunc(); // undefined alebo hodnota z vonkajšieho kontextu (napríklad window.value)
// Použitie call/bind:
function show() {
console.log(this.name);
}
const user = { name: 'Alice' };
show.call(user); // Alice
const boundShow = show.bind(user);
boundShow(); // Alice
Call a bind umožňujú explicitne nastaviť this pri volaní funkcie, ale nefungujú s šípkovými funkciami, pretože ich this je lexikálne fixované.