Konteksti parametrin kautta JavaScriptissä
On olemassa toinenkin ratkaisu ongelmaan. Tehdään
niin, että funktio child vastaanottaa
parametrin:
function child(param) {
// tähän tulee koodi
}
Ja kutsuttaessa tätä funktiota välitämme
siihen this:
function parent() {
child(this); // välitetään parametrina this
function child(param) {
// muuttujassa param on välitetty this-sisältö
}
}
Koska child-kutsu suoritetaan
yläfunktiossa, myös välitetty
this viittaa oikeaan. Tämän jälkeen
tämä this siirtyy parametriin param
ja on saatavilla tässä muodossa funktion sisällä.
Tässä on lopullinen koodi:
let elem = document.querySelector('#elem');
elem.addEventListener('blur', parent);
function parent() {
child(this); // välitetään parametrina this
function child(param) {
console.log(param.value); // tulostetaan inputin value
}
}
Ota koodi edellisestä tehtävästä ja korjaa koodin ongelma opitun toisen tavan avulla.