⊗jsPmDmAHU 363 of 505 menu

Anonyymisten funktioiden sitomisen poisto JavaScriptissä

Oletetaan nyt, että kappaleisiimme on sidottu anonyymi funktio:

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

Oletetaan, että haluamme irrottaa tämän funktion kappaleesta klikkaamisen jälkeen. Meitä odottaa kuitenkin ongelma: funktiolla ei ole nimeä, mikä tarkoittaa, että emme pysty viittaamaan siihen sen nimellä irrottaaksemme sen.

Ongelman ratkaisemiseksi funktiolle on annettava nimi, tekemällä siitä nimetty funktionaalinen lauseke. Tehdään näin:

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

Nyt tämä funktio voidaan irrottaa sen sisällä itsessään:

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

Annettu lista ul, jossa jokaisessa kohdassa on kirjoitettu numero. Tee niin, että minkä tahansa li:n klikkaaminen kasvattaa sen numeroa yhdellä.

Muokkaa edellistä tehtävää siten, että jokainen li kasvattaa omaa arvoaan vain ensimmäisellä painalluksella sitä vasten.

Muokkaa edellistä tehtävää siten, että jokainen li kasvattaa omaa arvoaan vain, jos sen arvo on pienempi kuin 10.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää