Mikor ne használjuk őket és miért

A függvények JavaScriptben első osztályú polgárok vagy első osztályú objektumok, Ez azt jelenti, hogy olyan dolgokat tehetünk, mint például átadni őket paraméterként egy függvényben, vagy visszaadni őket egy függvény végrehajtásának eredményeként.

A függvényekről itt olvashatsz bővebben:

Kóddal magyarázom el, mi az anonim függvény (AF):

Az AF tehát olyan függvény, amelyet nem mentünk el egy változóba, vagy amelynek neve a “function” azonosító után van deklarálva.

Mikor ne használjuk őket

Az első probléma az AF-ekkel az, hogy nincs neve, ami elég hülye aclaration, de a fejlesztők számára egy változó, osztály vagy metódus neve a fő dokumentáció, amivel rendelkezünk az adott változó, osztály vagy metódus felelősségeiről és viselkedéséről. Egy rossz név miatt sok hibát követhetünk el, például azt várhatjuk, hogy egy függvény visszaad valamit, amikor a tényleges kódja kiír valamit a konzolra, és void-t ad vissza, például ha a “funcionResultPrinter”-t valami olyasmivel neveztük volna el, mint “functionResultGetter”.

Az első pillanat tehát, amikor nem kell anonim függvényeket használnunk, az az, amikor leíró névre van szükségünk, és ez általában mindig megtörténik.

A második probléma az, hogy az AF-eket futásidőben deklarálják és mentik a memóriában. Ez azt jelenti, hogy minden egyes alkalommal, amikor egy AF végrehajtásra kerül, egy másik helyet foglal el a memóriában, és ez növelheti a kód ezen részéhez szükséges számítási teljesítményt.

Mutatunk egy másik példát a kóddal:

Ebben a példában van egy AF, amelyhez szinte semmilyen számítási teljesítmény nem szükséges, de nehéz munkát végezhetünk egy függvényen, hogy megkapjuk, amire szükségünk van, és ez sok erőforrást emészthet fel a szerverünk vagy a kliens böngészője részéről.

A megoldás a függvény elnevezése:

Végül végezzünk néhány benchmarkot:

Újra

Két esetünk van, amikor el kell kerülnünk az anonim függvények használatát:

  1. Ha a függvénynek leíró névre van szüksége.
  2. Amikor olyan függvényt kell használnunk, amelynek nagy számítási teljesítményre van szüksége.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.