Адвязванне ананімных функцый у JavaScript

Хай цяпер да нашых абзацаў прывязана ананімная функцыя:

javascriptlet elems = document.querySelectorAll('p');

for (let elem of elems) {
  elem.addEventListener('click', function() {
    console.log(this.textContent);
  });
}

Хай мы хочам адвязаць гэтую функцыю ад абзаца пасля кліку па гэтым абзацы. Нас, аднак, чакае праблема: у функцыі няма імені, а значыць мы не зможам звярнуцца да яе па гэтым імені, каб адвязаць яе.

Для вырашэння праблему трэба даць імя функцыі, зрабіўшы з яе іменаванае функцыянальнае выраз. Зробім гэта:

javascriptlet elems = document.querySelectorAll('p');

for (let elem of elems) {
  elem.addEventListener('click', function func() { // далі імя функцыі
    console.log(this.textContent);
  });
}

Цяпер гэтую функцыю можна адвязаць унутры яе самой:

javascriptlet elems = document.querySelectorAll('p');

for (let elem of elems) {
  elem.addEventListener('click', function func() {
    console.log(this.textContent);
    this.removeEventListener('click', func); // адвязваем функцыю
  });
}
Задание 1

Дадзены спіс ul, у кожным пункце якога запісана лік. Зрабіце так, каб па кліку на любую li яе лік павялічвалася на адзінку.

Задание 2

Мадыфікуйце папярэднюю задачу так, каб кожная li павялічвала сваё значэнне толькі па першым націску на яе.

Задание 3

Мадыфікуйце папярэднюю задачу так, каб кожная li павялічвала сваё значэнне толькі калі яе значэнне менш за 10.