⊗jsPmDmAHU 363 of 505 menu

Odvezivanje anonimnih funkcija u JavaScript

Pretpostavimo da je sada na naše pasuse vezana anonimna funkcija:

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

Pretpostavimo da želimo da odvezemo ovu funkciju od pasusa nakon klika na taj pasus. Međutim, suočićemo se sa problemom: funkcija nema ime, što znači da joj ne možemo pristupiti preko tog imena, da bismo je odvezali.

Za rešenje problema, potrebno je dati ime funkciji, pretvarajući je u imenovani funcionalni izraz. Učinimo to:

let elems = document.querySelectorAll('p'); for (let elem of elems) { elem.addEventListener('click', function func() { // dali smo ime funkciji console.log(this.textContent); }); }

Sada se ova funkcija može odvezati unutar sebe same:

let elems = document.querySelectorAll('p'); for (let elem of elems) { elem.addEventListener('click', function func() { console.log(this.textContent); this.removeEventListener('click', func); // odvezujemo funkciju }); }

Dat je spisak ul, u čijoj je svakoj stavci zapisano po jedan broj. Uredite tako da klikom na bilo koju li njen broj bude povećan za jedan.

Modifikujte prethodni zadatak tako, da svaka li povećava svoju vrednost samo pri prvom pritisku na nju.

Modifikujte prethodni zadatak tako, da svaka li povećava svoju vrednost samo ako je njena vrednost manja od 10.

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij