Hogyan kell leírni a funkció

Nevezett funkciók állnak rendelkezésre mindenütt hatálya

Tulajdonságok elérhető funkciók függvényében, hogy így lehet használni, mint a statikus változókat.

Az elején minden függvény létrehoz magában a változó érveket és hozzárendeli arguments.callee utalás is. Tehát arguments.callee.test - ingatlan func.test. azaz a statikus változó tesztet.

A példában lehetetlen volt, hogy ezt a megbízást:

mivel ez a művelet lenne ++ által kiváltott lokális változó tesztet. és nem az ingatlan a vizsgált objektum jellemzői.

érveket objektum is tartalmaz érveket, és lehet alakítani egy tömb (bár ez nem), ez az - alább, a részben a paramétereket.

Minden funkció, vagy inkább még minden indításkor függvény beállítja az egyedi hatályú.

Változókat lehet nyilvánítani bárhol. Var kulcsszó határozza meg a változó az aktuális hatályát. Ha elfelejti, akkor kap egy globális változót az ablak. Lehetséges váratlan keresztezi más változó ablak, a konfliktusok és a hibákat.

Hogyan kell leírni a funkció

Ellentétben számos nyelven, a tömbök nem adja külön körét. Nem számít - definiált változó a készülék belsejében vagy azon kívül. Tehát ez a két darab teljesen egyenértékű:

Állítsa át var változó látható mindenhol a hatálya alá, még mielőtt a var nyilatkozatot. Például, hogy egy függvény, amely meg fogja változtatni a változó var, melyek alatt.

Funkciók lehet futtatni tetszőleges számú paramétert.

Ha a funkciók adott kevesebb érvek, mint ez a meghatározás, nincs tekinthető definiált.

Az alábbi függvény az időszakban. meg kell legyőzni a távolságot futam egyenletes sebességgel sebességet.

Az első start funkció működik távolság = 10 érv. speed = meghatározatlan. Normális egy ilyen helyzetben, ha támogatja a funkció, egy alapértelmezett érték:

Az üzemeltető || A JavaScript nem ad vissza igaz / hamis. de maga az érték (az első, amely az igazi).

Ezért használjuk az alapértelmezett értékeket. A mi hívás sebesség számítható ki meghatározatlan || 10 = 10.

Ezért az eredmény az lesz 10/10 = 1.

A második elindítása - a szabvány.

A harmadik dob állítja számos további érveket. A funkciók nem állnak rendelkezésre dolgozni kiegészítő érveket, így azok egyszerűen figyelmen kívül hagyja.

Nos, az utóbbi esetben az érvek nem, ezért távolság = nem definiált. és elosztjuk az eredmény már definiált / 10 = NaN (nem-A-száma, hiba történt).

Közvetlenül előtte a test funkció automatikusan létrehozza érveket objektum. amely

  1. hívja érvek, nullától kezdve
  2. Length tulajdonság hossza
  3. A hivatkozás a funkciót is a hívott ingatlan

Az ingatlan érvek hasonlóak a tömb, mert a hossza és a numerikus indexeket. Tény, hogy érvek nem tartozik a Array és tartalmazza a módszerek, mint például a push. pop, és mások.

Ha továbbra is szeretné használni ezeket a módszereket, például, hogy a hívás egy másik funkció ugyanazokat az érveket, de más, mint az első, akkor létrehozhat egy sor érv jelen:

Hívja a funkció egy sor érv, akkor a alkalmazni:

Légzésfunkciós átadhatók érvként másik funkció.

Például térkép vesz egy függvény funk. alkalmazza azt minden elemét arr tömbben és visszaadja az eredményül kapott tömböt:

Vagy létrehozhat egy névtelen függvényt a hívást térképen:

Vannak olyan funkciók, amelynek érvek nagyban.

Hívjon opcionális paramétereket kell megtenni:

Hogy elkerüljék a felesleges null, és a kód könnyebben érthető, használható, mint valami „címszó érvek” létező Python és Ruby. Ehhez sok paraméterek csomagban egyetlen objektum:

A hívást most készül sokkal könnyebb:

Így - sokkal egyértelműbb. És ha több mint 5 paramétert, majd tegye - az egyetlen normális módja.

Ezen túlmenően, a tárgy sorrendje lehet telefonálni, sokkal kényelmesebb, mint például:

  • nyomtatható változat

Üdvözlünk! Szeretnék egy kicsit, hogy dolgozzon ki egy témát:
„” „” „” „” „” „” „” „” „” „” „” „” „” „” „” „” „” „”
A példában lehetetlen volt, hogy ezt a megbízást:
var test = arguments.callee.test
teszt ++

mivel ez a művelet lenne ++ által kiváltott lokális változó teszt, és nem a vizsgált objektum tulajdonság funkciók
„” „” „” „” „” „” „” „” „” „” „” „” „” „” „” „” „” „”
Ahogy én látom, ez annak köszönhető, hogy az a tény, hogy még ha hozzárendel egy változó arguments.callee.test utalást egy tárgyat, majd tovább bármilyen tranzakció vele, például ++ teszt, ez a teszt lesz a változó értékét, hogy egy egyszerű szám (ebben az esetében), és nem a tárgy-mint örökös. Módosíthatja, ha rossz :)

egyszerű típusok a következő szabály:

de emellett az egyszerű típusok objektumok és tömbök - számukra mások jogait:

Ez azért van, mert az objektumok és tömbök átadása hivatkozás helyett az érték
Ennek megfelelően, ha az Ön esetében szükséges megtenni: