This-arvo (2/3)

Propertynä kutsuttuna this-arvo on .-operaattorin vasemmanpuoleinen arvo:

obj.f(); // f-funktion sisällä: this === obj
  • Ei ole merkitystä, miten funktio on liitetty objektiin tai tuleeko funktio objektin prototypestä

This-arvo kadotetaan, jos kutsua ei tehdä välittömästi:

const f = obj.f;
f(); // f-funktion sisällä: this === undefined

Voidaan luoda kokonaan uusi funktio ja hyödyntää näkyvyysalueita, jotta kutsu tehdään .-notaatiolla:

const g = function() {
  obj.f(); // f-funktion sisällä: this === obj
};
g();

Tavallisen funktion this-arvo voidaan lukita:

const g = obj.f.bind(obj);
g(); // f-funktion sisällä: this === obj
  • Arvoon g asetetaan funktiosta f versio, jonka this-arvo on lukittu viittaamaan arvoon obj

ES2015 arrow-funktiot helpottavat this-arvon käsittelyä.

Last updated