Løsne anonyme funksjoner i JavaScript

La oss nå anta at anonyme funksjoner er bundet til våre avsnitt:

javascriptlet 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:

javascriptlet 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:

javascriptlet 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
  });
}
Задание 1

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.

Задание 2

Modifiser den forrige oppgaven slik at hver li kun øker sin verdi ved første trykk på den.

Задание 3

Modifiser den forrige oppgaven slik at hver li kun øker sin verdi hvis verdien er mindre enn 10.