Funkciók - javascript, mdn

Általában egy függvény egy "szubrutin", amelyet egy külső (vagy belső, rekurzió esetén) hívhat meg a kód funkciójával kapcsolatban. A programhoz hasonlóan a függvény a funkciótestnek nevezett utasítássorozatból áll.





Az értékek átadhatók a függvénynek, és a függvény egy értéket ad vissza.

A funkciók nem eljárások. A funkció mindig visszaad egy értéket, és az eljárás visszatérhet, vagy nem térhet vissza.

Az alapértelmezett értéktől eltérő érték visszaadásához a funkciónak visszaadási nyilatkozatának kell lennie. amely jelzi, hogy pontosan mit kell visszaküldeni. A funkció nélkül ez visszaadja az alapértelmezett értéket. A kivitelező esetében. új kulcsszóval hívják. Az alapértelmezett érték a paraméter értéke. Más funkciók esetén az alapértelmezett érték nincs megadva.







A függvényhívás paramétereit funkcionális argumentumoknak nevezzük. Az argumentumokat átadják a függvénynek érték szerint. Ha a függvény megváltoztatja az argumentum értékét, ez a változás nem érinti a globális állapotot vagy a hívási funkciót. Az objektumokra való hivatkozások ugyanakkor értékek is, és abban különböznek, hogy ha egy függvény referenciaként megváltoztatja egy objektum tulajdonságait, akkor ez a változás látható a függvényen kívül, amint az az alábbi példában látható.

Ez a kulcsszó nem az aktuálisan végrehajtott függvényre vonatkozik, ezért nevezze el a Funkció objektumokat, még magát a funkciót is.

Funkciók meghatározása

A funkció meghatározásához többféleképpen lehet megadni:

név A funkció neve. param A függvény nevéhez tartozó argumentum neve. A függvény legfeljebb 255 argumentumot tartalmazhat. kijelentések A függvénytestet alkotó állítások.

Funkció-kifejezés (operátorfunkció)

A függvény-kifejezés hasonló a funkciódefinícióhoz, és ugyanazt a szintaxist tartalmazza (részletesebben: függvénytulajdonos):

név A funkció neve. Nem lehet megadni, ebben az esetben a funkció névtelenül válik. param A függvény nevéhez tartozó argumentum neve. A függvény legfeljebb 255 argumentumot tartalmazhat. kijelentések A függvénytestet alkotó állítások.

) "> Arrow függvény-kifejezés (=>)

Megjegyzés: A nyíl funkciók kísérleti technológiák, amelyek az ECMAScript 6 specifikáció részét képezik, és amelyeket még nem támogat minden böngésző.

param A paraméter neve. Ha nincsenek benne paraméterek, akkor helyettesíteni kell (). Ha egynél több paraméter van, azokat is be kell zárni (). nyilatkozatok vagy kifejezések Ha több utasítás van, azokat be kell zárni <>. Egy kifejezésnél a göndör zárójelek nem szükségesek, és ennek a kifejezésnek az eredményét a függvény visszaküldi (azaz az x => 3 + 8 függvény visszatér 11-re).

Funkció konstruktor

Funkció objektumokat hozhat létre az új operátor (mint bármely más objektum) használatával:

A Funkció konstruktor az új operátor nélkül is hívható, a hatás ugyanaz lesz.

Funkcióparaméterek

Megjegyzés: A fennmaradó paraméterek és az alapértelmezett paraméterek a kísérleti technológia, amely az ECMAScript 6 specifikáció része, és még nem kapott széles támogatást a böngészők között.

Alapértelmezett beállítások

A fennmaradó paraméterek

A fennmaradó paraméterek szintaxisa lehetővé teszi, hogy egy végtelen számú argumentumot adjon meg egy tömbnek. A részleteket lásd: Remaining Parameters.

Az érvek objektumot jelentenek

A függvény belsejében érvei érhetők el az argumentum objektumon keresztül.

  • érveket. Olyan objektum, amely úgy néz ki, mint egy tömb, és tartalmazza az összes argumentumot, amelyet átadnak az aktuális függvénynek.
  • arguments.callee. A jelenleg végrehajtott függvény.
  • arguments.caller. Az aktuális funkciót hívó funkció.
  • arguments.length. A függvényhez tartozó argumentumok száma.

A módszerek meghatározása

Getters és Setters

A beépített vagy egyéni objektumot, amely támogatja az új tulajdonságok hozzáadását, megadhatja a getters (olvasási módszerek) és a beállítók (a változtatás módjait). Ehhez az objektum literál szintaxisát használjuk.

A társításokat egy olyan objektum tulajdonsággal látja el, amelynek funkciója a tulajdonhoz való hozzáféréskor lesz. set Hozzárendeli az objektum tulajdonságát azzal a funkcióval, amelyet az ingatlan megváltoztatásakor hívni fognak.

Módszer meghatározása Szintaxis

Megjegyzés: A módszerek meghatározása a kísérleti technológia, amely az ECMAScript 6 specifikáció része, és még nem kapott széles körű támogatást a böngészők között.

Az ECMAScript 6-ból kiindulva saját módszereit megfoghatjuk egy tömör szintaxissal, amely hasonlít a getters és a setterekhez. További részletek: A módszerek meghatározása.

Nézze meg a következő példákat:

A Funkció konstruktoron keresztül definiált és a változó szorzással azonosított függvény:

Névtelen függvény-kifejezés, mely változik a változó szorzással:

Function-expression nevű func_name. egyenlő a változó szorzásával:

Minden esetben az eredmény közel azonos, de számos árnyalat van:

A függvény és a változó azonosítójának neve nem ugyanaz. A függvénynevet nem lehet megváltoztatni, de a változó, amelyre a függvény azonosítható, eltérő értéket kaphat. Egy névvel ellátott kifejezésfunkció esetén ez a név csak a funkción belül használható. Ha kívülről próbálkozik, hiba lép fel (és ha egy adott változót korábban bejelentettek, akkor az nem definiált). Például:

A funkcionális kifejezés neve akkor is megjelenik, ha a függvény a Function.toString módszerrel sorba van sorolva.

De a változó, amelyhez a függvény egyenlő, csak a saját hatóköre korlátozza, amely magában foglalja azt a területet, ahol a függvényt bejelentették.

  1. Ha egy függvényt egy függvénykifejezéssel definiálunk, annak neve csak a funkción belül áll rendelkezésre.
  2. Ha egy függvényt deklarálnak, akkor annak a hatókörben van megadva, ahol a függvényt definiálták.

Mivel valójában a funkciónak nincs neve, az anonim változó nem használható a függvényen belül. Például a következő példa hibát dob:

Az expressziós függvény által definiált függvény örökli az aktuális hatókört, azaz bezárást hoz létre. De a funkció konstrukcióval létrehozott függvény. Nem örökli semmit, csak egy globális hatókört (általában minden funkciót örököl).

  • a kifejezés részévé válik
  • Ez nem egy függvény vagy fájl forráseleme. A forráselem nem egy beágyazott elem egy függvényben vagy szkriptben:

Függvény függvénye az állapottól függően

A függvények a függvényállapot (az ECMA-262 Edition 3 szabvány megengedett kiterjesztése) vagy a Funkció konstruktor használatával határozhatók meg. Ne feledje, hogy ezek az utasítások az ES5-ben nem megengedettek. Emellett ez a szolgáltatás különböző böngészőkben viselkedik, ezért ne számítson rá.

Az alábbi kódban a nulla funkció soha nem lesz meghatározható, és nem hívható meg, mert "(0)" mindig hamisnak minősül:

Ha megváltoztatja a feltételt 'if (1)' állapotra, akkor a nulla funkció lesz meghatározva.

Példa: formázott szám visszaadása

Ez a függvény egy olyan számot tartalmaz, amely egy számot tartalmaz egy adott számú nullával:

Példa: létezik a függvény

Meghatározhatja, hogy létezik-e egy függvény a típuskezelő használatával. A következő példa ellenőrzi, hogy az ablakobjektum rendelkezik-e a noFunc funkcióval. Ha van, akkor hívják; ha nem, akkor valamilyen más műveletet hajtanak végre.

leírás




Kapcsolódó cikkek