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дан кичине болсо гана маанисин көбөйтсүн.