Sobes.tech
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é.