/ / JavaScript: funkcia vo funkcii. Programovací jazyk JS

JavaScript: funkcia vo funkcii. Programovací jazyk JS

Myšlienky dynamického formovania obsahu na webovom zdroji sa stali normou. Statické stránky a vytváranie šablónových stránok konečne dokončili svoju misiu.

Moderným webovým zdrojom však nemusí byť sada stránok generovaných serverom a aktualizovaných prehliadačom (JS + AJAX).

funkcia javascript vo funkcii

Po príchode návštevníka môže byť webovým zdrojom niekoľko hlavičiek protokolu, nejaký text v „hlave“, niekoľko riadkov kódu v „tele“ a to je všetko. Zvyšok "rozmýšľať o»V procese práce návštevníka - je to ideálne miesto, ktoré sa snaží byť.

Miesto popisu a podstata funkcií

JavaScript je skúsenosti získané počas mnohých desaťročí. Má významnú históriu vývoja, moderný kvalifikovaný tím tvorcov a vývojárov. Jazyk je dobre premyslený, spoľahlivý, krásny a poskytuje vývojárom skutočnú príležitosť napísať slušný kód a vylepšiť sa.

chyba JavaScriptu je operácia nezabezpečená

Koncept algoritmu mimo funkcie tu vprincíp. Samozrejme, že vývojár môže vložiť skript kamkoľvek na stránku, umiestniť do neho kód a ten sa vykoná. Ale aký má zmysel kód, ktorý sa vykoná iba raz: pri načítaní (preťažení) stránky? Pokiaľ však nemôžete nastaviť počiatočné hodnoty niektorých nepodstatných premenných.

Skript je miestom na popis požadovaných premenných askôr ako pekný kúsok kódu napísaný pre jeho vlastnú potrebu. Je to pravdepodobne podstatný a významný súbor funkcií - ich vzájomné priame spojenie, ale častejšie je všetko inak. Miesto popisu funkcie a miesto jej použitia nie sú vôbec rovnaké.

Nie je vôbec nevyhnutné, aby táto funkcia bolapriamo zavolajte inú funkciu, možno to urobiť nepriamo prostredníctvom generovania dynamického kódu. Návštevník sa rozhodne v rámci tohto kódu a spustí sa úplne iný systém funkcií.

Funkčná dynamika

Funkčná dynamika nie je len onie toľko obslužných rutín, ktoré sú priradené k prvkom stránky, sú to funkcie, ktoré tvoria prvky stránky, a okamžité obslužné programy sa môžu tiež meniť.

javascript návrat

Akcia na stránke sa odvíja v závislosti od jej prvkov a správania návštevníka. Pohyby myši, tlačidlá klávesnice, kliknutia, udalosti prvkov a ďalšie okolnosti vedú k spusteniu požadovaných funkcií.

Spočiatku neexistuje postupnosť aneexistuje paralelizmus. Webový zdroj adekvátne reaguje na udalosti. To, ako rýchlo JavaScript vykoná konkrétnu funkciu, závisí od mnohých technických (počítačové, komunikačné linky) a sémantických (logika algoritmu, predmetná oblasť, význam problému) faktorov.

V skutočnosti sa dá tvrdiť, že niečo fungovalo.paralelne a niečo sa po niečom naplní, ale nemá to žiadny zvláštny zmysel. Je dôležité, aby funkciami JavaScriptu bola schopnosť adekvátne reagovať na akcie návštevníka.

Toto je nové vývojové myslenie: distribuované spracovanie informácií v útrobách jediného prehliadača!

Syntax premenných a funkcií

Premenné jazyka JavaScript sú umiestnené ako v značke„Skript“ a v tele funkcie. Funkcie sú definované rovnako. Vo funkcii nemá zmysel písať inú funkciu, ale môže to byť potrebné z rôznych a opodstatnených dôvodov.

Popis funkcie sa všeobecne začína kľúčovým slovom „function“, za ktorým nasleduje jeho názov, zoznam argumentov v zátvorkách oddelených čiarkami a telo funkcie v zložených zátvorkách.

javascript prejsť funkciou do funkcie

Tento príklad popisuje dve funkcie, ktoré zabezpečujú komunikáciu AJAX medzi stránkou a serverom. Premenná scXHR je popísaná vyššie, takže je k dispozícii v InitXML aj vo vnútri WaitReplySC.

Názov funkcie a parameter „funkcia“

Asynchrónna možnosť tu bola predstavená, keďFunkcia JavaScriptu vo funkcii sa volá po odpovedaní servera. WaitReplySC po prijatí odpovede od servera súčasne odkazuje na značky stránky, vyplní ich prijatými informáciami a zavolá ďalšie funkcie, ktoré môžu na server inicializovať ďalšiu požiadavku.

Tu je tiež dôležité poznamenať, že WaitReplySC je funkcia. Ale v rade scXHR.onreadystatechange = WaitReplySC odovzdáva sa ako parameter.Toto je všeobecné pravidlo pre odovzdávanie funkcií iným funkciám ako parametrom. Zadané zátvorky a odovzdané ich parametre (parametre) - funkcia bude vykonaná okamžite. Dal iba meno, tak čo? Hovor o funkcii uskutoční ten, kto dostal jeho meno.

Funkčnosť AJAX vám umožňuje robiť Volanie funkcie JavaScript prostredníctvom údajov prijatých zo servera. V skutočnosti pri odosielaní žiadosti na server nemusí táto alebo táto funkcia vôbec „vedieť“, na ktorú funkciu sa odvoláva a s akými informáciami.

Ukončenie funkcie a výsledok

Do tela funkcie je možné vpísať ľubovoľné operátory.jazyk, ktorý je v skutočnosti na to určený. V rámci funkcie sú k dispozícii premenné, ktoré sú popísané v jej vnútri aj mimo nej, ale nie tie, ktoré sú popísané v iných funkciách.

volanie funkcie javascript

Ak chcete, aby sa funkcia vrátilaako výsledok môžete použiť JavaScript operátor návratu: návrat. V tele funkcie môže byť dostatočný počet návratových príkazov. Nie je vôbec potrebné, aby všetky vracali rovnaký typ výsledku.

Vývojári majú zvyčajne pred touto funkciou veľký rešpekt a v závislosti od situácie sa rozhodnú túto funkciu opustiť čo najskôr.

Pri predčasnom ukončení nie je vôbec potrebné absolvovať celý algoritmus funkcie.

Argumenty funkcie

Argumenty sa funkcii odovzdávajú ako zoznam pomocoučiarka, sú uzavreté v zátvorkách a objavia sa okamžite za ich menom. Názvy premenných sa používajú ako argumenty, ale hodnoty je možné odovzdávať aj priamo. Ak chcete funkciu odovzdať funkcii v JavaScripte, stačí zadať jej názov bez zátvoriek.

premenné javascript

Premenná argumentov je k dispozícii vo vnútri funkcie, vlastniť majetok dĺžka. Na akýkoľvek argument funkcie môžete odkazovať prostredníctvom argumentov [0], argumentov [1], ... až po posledné argumenty [argumenty.length-1].

Zmena argumentu funkcie je skutočne vo vnútrifunkcie, ale nie mimo nej. Aby ste mohli zmeniť niečo mimo tejto funkcie, musíte použiť operátor návratu JavaScript, cez ktorý odovzdáte požadovanú hodnotu smerom von.

Po dokončení funkcie všetko, čobol spojený s jeho vykonaním, bude zničený. Počas vykonávania môže funkcia meniť externé premenné, okrem tých, ktoré sú opísané v iných funkciách, vrátane interných.

Argumenty majú volanú vlastnosť, ktoráje určené na volanie funkcie, ktorá sa vykonáva v danom čase. Ak sa nazývate sám sebe, potom vám JavaScriptový variant funkcie vo funkcii umožní implementovať rekurziu.

Používanie funkcií

Hlavným záujmom funkcií je slúžiť udalostiamprehliadač. Za týmto účelom má takmer každá značka možnosť určiť názov udalosti a funkciu, ktorá ju spracúva. Môže byť zadaných viac udalostí, ale na jednu udalosť je zadaná iba jedna funkcia.

Jedna funkcia môže slúžiť viacerým prvkom stránky a viacerým udalostiam. Pomocou parametra „toto“ môžete odovzdať informácie funkcii, z ktorej boli volané.

Klasické použitie funkcií JS je -obsluhy udalostí pre prvky. V tomto príklade sa funkcia scfWecomeGo () alebo scfWelcomeCancel () zavolá v prihlasovacom / odhlasovacom formulári návštevníka a keď je zvolený režim, scfMenuItemClick (toto).

javascript návrat

V druhom prípade sa odovzdá parameter „tento“,ktorý umožňuje zázračne zistiť, z ktorej divy volanie vzniklo. JavaScript je všeobecne tak dobre implantovaný do DOM a umožňuje vám tak pohodlne prechádzať jeho prvkami, zhromažďovať potrebné informácie, takže dynamika stránky môže byť jednoducho nepredvídateľná.

Funkcia nemusí vracať reťazecznaky, číslo alebo iná funkcia. Môže vrátiť plnohodnotný prvok HTML, v ktorom bude požadovaný počet prvkov, s vlastnými obslužnými rutinami udalostí.

Umiestnením takéhoto prvku na stránku vývojár vytvára novú funkcionalitu, ktorá je dobrá z hľadiska riešenia problému a uspokojovania záujmov návštevníkov, ale dosť náročná z hľadiska implementácie.

Začatím takého plne funkčného vývojaje ľahké sa zmiasť vo svojom vlastnom kóde, volaniach funkcií, v okamihoch, keď sa tvorí ten alebo onen obsah tejto alebo tej časti stránky. Než sa vydáte týmto smerom vývoja, nezaškodí si všetko dobre zvážiť.

O distribuovanom myslení

Vývojár musí myslieť na úrovni všetkých prvkov stránky, na úrovni všetkých udalostí a musí mať jasnú predstavu o tom, ako sa to všetko vlastne deje. Je to ťažké, ale práca stojí za to.

funkcie poľa javascript

V JavaScripte môže byť vykonanie funkcieodložené do nejakej udalosti a takýchto funkcií môže byť veľa a udalosti majú tendenciu sa šíriť a spadať do „rozsahu“ rôznych obslužných programov.

chyba JavaScriptu je operácia nezabezpečená

V tomto príklade niekde skôrfunkcia, ktorá spustila vytvorenie položky ponuky navigácie v súbore. Predpokladá sa organizácia stránky, to znamená, že v okne je iba sedem súborov, ktoré je možné vymazať a spracovať. Navigovať sa môžete buď kliknutím na riadok v súbore, alebo šípkami na klávesnici alebo v blokoch po siedmich riadkoch.

Každý prípad má svoje vlastné funkcie.Inými slovami, v takomto jednoduchom príklade musíte napísať niekoľko desiatok funkcií, ktoré budú reagovať na rôzne udalosti, a niektoré z týchto funkcií zvládnu rôzne možnosti a situácie, ktoré vôbec nie sú udalosťami.

vykonávanie funkcie javascript

Napríklad pri mazaní riadku by mali byť tie spodnéposunúť sa hore. Aby ste to dosiahli, budete musieť urobiť nový výber, ktorý je triviálny a náročný na zdroje, alebo prepočítať riadky, použiť funkcie poľa v javascript a elegantne dosiahnuť cieľ.

Argumenty funkcie a výsledky

JavaScript vám umožňuje previesť kód na„Plne funkčný“ stav. Je normálne, keď je argumentom funkcie funkcia. Variant je povolený, keď funkcia vráti funkciu. JavaScript to berie celkom pokojne.

Toto je dobrý mechanizmus, ktorého implementácia je však dosť komplikovaná. Technicky je všetko prípustné, sémanticky, iba kvalifikovaný vývojár môže poskytnúť logiku prenosu „funkčného“.

javascript prejsť funkciou do funkcie

V jazyku JavaScript je to funkcia v rámci funkcie - nech ste kdekoľvekpokračoval, ale keď funkcia vygeneruje funkciu a tú druhú, je dosť ťažké sledovať logiku. V skutočnosti nejde o získanie kvalifikácie, ale o dosiahnutie bezpečného a správneho výsledku.

Obava vývojára je jasná a jednoduchá. Vyskytol sa problém, potrebujete riešenie, nie chybu typu „Chyba JavaScriptu je operácia nezabezpečená“, prázdna obrazovka alebo zastavenie celého modulu prehľadávača.

Ak je argument funkciou, potomvývojár odovzdá premennú so špeciálnymi vlastnosťami, to znamená, že nejde o číslo, ani o reťazec, ani o objekt. Ale použitie takého argumentu môže viesť k tomu, že sa budú meniť externé premenné a výsledok vykonávania funkcie bude. Podľa toho, čo sa prenesie, sa urobia adekvátne zmeny.

Vykonanie vygenerovaného kódu

Implementovať vykonávanie kódu vygenerovaného vzatiaľ čo je spustený iný kód, môžete použiť „eval“. To sa nepovažuje za vynikajúce riešenie, často však nemôžete kód skomplikovať zbytočnými funkciami, ale obmedziť sa na banálne vytvorenie riadku kódu JavaScript a jednoducho ho vykonať.

vráti funkciu javascript

V tomto príklade je vložená čiara vytvorená vkonajúci div nejaké informácie. Číslo div a informačný obsah sa líšia pre rôzne polohy, preto je zaručené, že takéto riešenie v tejto situácii neposkytne situáciu „chyba javascript, operácia je nezabezpečená“, ale spoľahlivo prinesie požadovaný efekt.

Autorov príklad nie je obrázok

Nuance paradigmy JavaScript typu funkcia vo funkcii

Ak existuje príležitosť zaobísť sa bez ozdôb, je lepšie ju využiť. Všetky vyššie uvedené možnosti sú dobré. Samozrejme, v mnohých prípadoch je to jediné riešenie.

Klasický príklad rekurzie: výpočet faktoriálu. Je dosť ťažké napísať algoritmus, ktorý bude slučkovať, ale je veľmi ľahké prekročiť hranice hodnoty. Faktoriál rastie príliš rýchlo.

Normou sú však rekurzia aj funkcia volajúca inú funkciu, ktorá umožňuje platné spätné volanie.

Napríklad bežný stôl. V tabuľke môžu byť ďalšie tabuľky. Hniezdenie nemožno obmedziť. Napísať samostatnú sadu funkcií pre každú tabuľku je príliš veľký luxus.

Existuje veľa takýchto príkladov a všetkopôjde o skutočné a urgentné úlohy, vôbec nie z oblasti programovania. Preto problém spočíva práve v tom, že sa to nezaobíde bez excesov, vytvorený systém funkcií, respektíve jeho odladenie a následná spoľahlivá prevádzka, sa nestará o JavaScript, ale o vývojára.

páčilo sa:
0
Populárne príspevky
Duchovný rozvoj
jedlo
y