Sobes.tech
Middle

Otseülesandmine: määrake konsoolis välja koodile, mis sisaldab funktsioone, noolefunktsioone, objekte ja konteksti (this), call/bind

sobes.tech AI

Vastus AI-lt

JavaScriptis sõltub täitmise kontekstist (this), kuidas funktsioon kutsutakse. Noolefunktsioonidel (arrow functions) ei ole oma this — nad pärivad selle välisest leksikaalsest keskkonnast.

Näide:

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

obj.regularFunc(); // 42 — this viitab obj-le
obj.arrowFunc();   // undefined või väärtus välisest kontekstist (näiteks window.value)

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

const user = { name: 'Alice' };

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

Seega võimaldavad call ja bind selgelt määrata this funktsiooni kutsumise ajal, kuid ei tööta noolefunktsioonidega, kuna nende this on leksikaalselt fikseeritud.