Sobes.tech
Middle

Tiešsaistes kodēšana: nosakiet konsoles izvadi kodam ar funkcijām, bultiņas funkcijām, objektiem un kontekstu (this), call/bind

sobes.tech AI

Atbilde no AI

JavaScript konteksts (this) irekļūst atkarīgs no tā, kā tiek izsaukta funkcija. Loku funkcijas (arrow functions) tām nav sava this — tās manto no ārējās leksikālās vides.

Piemērs:

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

obj.regularFunc(); // 42 — this atsaucas uz obj
obj.arrowFunc();   // undefined vai vērtība no ārējā konteksta (piemēram, window.value)

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

const user = { name: 'Alice' };

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

Tādēļ call un bind ļauj skaidri noteikt this funkcijas izsaukuma laikā, bet nedarbojas ar loka funkcijām, jo to this ir fiksēts leksikāli.