Sobes.tech
Middle

Kas bind meetodit saab kasutada noolefunktsioonile?

sobes.tech AI

Vastus AI-lt

Ei, see ei ole võimalik.

Noolefunktsioonidel (arrow functions) ei ole oma this konteksti. this väärtus noolefunktsiooni sees määratakse leksikaliselt, see tähendab, et see pärandub välisest kontekstist. Meetod bind muudab tavalise funktsiooni this konteksti, kuid kuna noolefunktsioonil ei ole oma this-i, ei saa bind seda muuta. Katse rakendada bind noolefunktsioonile tagastab sama funktsiooni, kuid selle this-i kontekst jääb muutumatuks.

// Tavalise funktsiooni näide
function traditionalFunction() {
  console.log(this);
}

// Noolefunktsiooni näide
const arrowFunction = () => {
  console.log(this);
};

const obj = { nimi: 'test' };

// `bind` rakendamine tavalisele funktsioonile - muudab `this`
const boundTraditional = traditionalFunction.bind(obj);
boundTraditional(); // Kuvab { nimi: 'test' }

// `bind` rakendamine noolefunktsioonile - ei muuda `this`
// `this` noolefunktsioonis on sama mis selle deklareerimise kohas
const boundArrow = arrowFunction.bind(obj);
boundArrow(); // Kuvab `this` globaalsetest või välisest kontekstist