Milloin niitä ei kannata käyttää ja miksi
>>Javaskriptin funktiot ovat ykkösluokan kansalaisia tai objekteja, Se tarkoittaa, että voimme esimerkiksi siirtää ne funktion parametrina tai palauttaa ne funktion suorittamisen tuloksena.
Voit lukea lisää funktioista täältä:
Kerron koodin avulla, mikä on anonyymi funktio (anonymous function, AF):
Funktio (AF) on siis funktio, jota ei ole tallennettu muuttujaan tai jolla ei ole nimeä, joka on julistettu ”function”-tunnuksen jälkeen.
Milloin niitä ei kannata käyttää
Ensimmäinen ongelma AF:n kanssa on se, että sillä ei ole nimeä, aika typerä ilmoitus, mutta kehittäjille muuttujan, luokan tai metodin nimi on tärkein dokumentaatio, joka meillä on kyseisen muuttujan, luokan tai metodin vastuista ja käyttäytymisestä. Huono nimi voi antaa meille mahdollisuuden tehdä paljon virheitä, kuten odottaa, että funktio palauttaa jotain, kun sen varsinainen koodi tulostaa jotain konsoliin ja palauttaa tyhjän, esimerkiksi jos olisimme nimenneet ”funcionResultPrinterin” esimerkiksi ”functionResultGetterillä”.
Ensimmäinen hetki, jolloin meidän ei tarvitse käyttää anonyymejä funktioita, on silloin, kun tarvitsemme kuvaavan nimen, ja se yleensä tapahtuu aina.
Toinen ongelma on se, että AF:t julistetaan ja tallennetaan muistiin ajonaikana. Se tarkoittaa, että joka kerta, kun AF suoritetaan, se vie toisen paikan muistissa, ja se voi lisätä koodin kyseiseen osaan tarvittavaa laskentatehoa.
Tehdään toinen esimerkki koodin kanssa:
Tässä esimerkissä meillä on AF, joka ei vaadi juuri lainkaan laskentatehoa, mutta saatamme tehdä raskasta työtä funktiolla saadaksemme sen, mitä tarvitsemme, ja se voi kuluttaa palvelimeltamme tai asiakkaamme selaimelta paljon resursseja.
Ratkaisu on nimetä funktio:
Tehdään lopuksi jokin benchmark:
Jatketaan
Meillä on kaksi tapausta, joissa meidän on vältettävä nimettömien funktioiden käyttöä:
- Kun funktio tarvitsee kuvaavan nimen.
- Kun meidän on käytettävä funktiota, joka tarvitsee paljon laskentatehoa.