Løsne anonyme funksjoner i JavaScript
La oss nå anta at anonyme funksjoner er bundet til våre avsnitt:
let elems = document.querySelectorAll('p');
for (let elem of elems) {
elem.addEventListener('click', function() {
console.log(this.textContent);
});
}
La oss si at vi ønsker å løsne denne funksjonen fra avsnittet etter et klikk på dette avsnittet. Vi vil imidlertid møte et problem: funksjonen har ikke noe navn, no som betyr at vi ikke kan referere til den ved navn for å løsne den.
For å løse problemet må vi gi funksjonen et navn, og gjøre den om til et navngitt funksjonsuttrykk. La oss gjøre det:
let elems = document.querySelectorAll('p');
for (let elem of elems) {
elem.addEventListener('click', function func() { // ga funksjonen et navn
console.log(this.textContent);
});
}
Nå kan denne funksjonen løsnes inni seg selv:
let elems = document.querySelectorAll('p');
for (let elem of elems) {
elem.addEventListener('click', function func() {
console.log(this.textContent);
this.removeEventListener('click', func); // løsner funksjonen
});
}
Gitt en liste ul, hvor hvert punkt inneholder
et tall. Gjør slik at ved
klikk på en hvilken som helst li, økes dens tall
med én.
Modifiser den forrige oppgaven slik
at hver li kun øker sin
verdi ved første trykk
på den.
Modifiser den forrige oppgaven slik
at hver li kun øker sin
verdi hvis verdien
er mindre enn 10.