PočítačeProgramovanie

JavaScript: funkcia vo funkcii. JS programovací jazyk

Návrhy na tvorbu dynamického obsahu na webových zdrojoch sa stali normou. Statické stránky a návrh šablóny stránok nakoniec ukončili svoju misiu.

Moderný webový zdroj však nemusí byť reprezentovaný súborom stránok generovaných serverom a aktualizovaných prehliadačom (JS + AJAX).

Webový zdroj v momente príchodu návštevníka môže byť pár záhlavia pre protokol, nejaký text v hlave, niekoľko riadkov kódu v "tele" a všetko. Zvyšok bude " vyriešiť " v procese práce návštevníka - je to ideálne miesto alebo sa usiluje byť jedným.

Miesto popisu a podstatu funkcií

опыт, наработаный многими десятилетиями. JavaScript je skúsenosť získaná počas mnohých desaťročí. Má významnú históriu vývoja, moderný kvalifikovaný tím tvorcov-vývojárov. Jazyk je dobre premyslený, spoľahlivý, krásny a dáva skutočnú príležitosť pre vývojárov písať slušný kód a zlepšovať sa.

Koncepcia algoritmu mimo funkcie v zásade chýba. Samozrejme, vývojár môže vložiť skript kdekoľvek na stránke, vložiť kód do nej a vykonať. страницы? Ale aký je bod v kóde, ktorý sa spúšťa iba raz: pri načítavaní (opätovnom načítaní) stránky? Pokiaľ nie je možné stanoviť počiatočné hodnoty akýchkoľvek nevýznamných premenných.

Skript je miesto popisu potrebných premenných a funkcií, skôr ako dobrý kus kódu napísaný pre seba. Je to súbor funkcií, ktorý je významný a významný, možno ich vzájomné priame spojenie, ale častejšie je to iné. Miesto popisu funkcie a miesto jeho použitia nie je totožné.

Nie je úplne nevyhnutné, aby funkcia vyvolala inú funkciu priamo, môže to byť vykonané nepriamo prostredníctvom generovania dynamických kódov. Návštevník rozhodne v rámci tohto kódu a funguje úplne iný funkčný systém.

Funkčná dynamika

Funkčná dynamika nie je len a nie toľko manipulátorov priradených k prvkom stránky, to sú funkcie, ktoré tvoria prvky stránky a priame spracovatelia sa tiež môžu meniť.

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

Spočiatku neexistuje žiadna konzistentnosť a neexistuje žiadna paralela. Existuje adekvátna reakcia webového zdroja na udalosti. Ako rýchlo bude program JavaScript spĺňať túto funkciu, závisí od mnohých technických (počítačových, komunikačných liniek) a sémantických (logika algoritmu, oblasti témy, význam problému).

V skutočnosti možno tvrdiť, že niečo fungovalo paralelne a niečo sa stane niečom, ale to nemá zmysel. Je dôležité, aby funkcia JavaScript bola schopná vytvoriť primeranú reakciu na akcie návštevníkov.

Toto nové myslenie vo vývoji: distribuované spracovanie informácií v črevách jedného prehliadača!

Syntax premenných a funkcií

Premenné jazyka JavaScript sa umiestnia ako do značky "skript", tak do tela funkcie. Funkcie sú definované rovnakým spôsobom. Neexistuje žiadny špeciálny význam pre písanie vo funkcii, ale to môže byť potrebné z rôznych a dôveryhodných dôvodov.

Popis funkcie všeobecne začína kľúčovým slovom "funkcia", za ktorým nasleduje jeho názov, zoznam argumentov v zátvorkách oddelených čiarkou a funkčné telo v zákrutách.

Tento príklad opisuje dve funkcie, ktoré poskytujú výmenu AJAX medzi stránkou a serverom. Premenná scXHR je popísaná vyššie, preto je k dispozícii v InitXML aj vo vnútri WaitReplySC.

Názov funkcie a funkčný parameter

Bol tu zobrazený asynchrónny variant, keď sa funkcia JavaScript vo funkcii nazýva po reakcii servera. V takomto prípade, po prijatí odpovede zo servera, WaitReplySC pristupuje k tagom stránok, vyplní ich prijatými informáciami a zavolá ďalšie funkcie, ktoré môžu úspešne spustiť ďalšiu požiadavku na server.

Tu je tiež dôležité poznamenať, že WaitReplySC je funkcia. scXHR.onreadystatechange = WaitReplySC она передается как параметр. Ale v riadku scXHR.onreadystatechange = WaitReplySC sa odovzdáva ako parameter. Toto je všeobecné pravidlo pre prechod funkcií na iné funkcie ako parametre. Zadal zátvorky a preniesol parameter (parametre) - funkcia sa vykoná okamžite. Dala som len meno, tak čo? Volanie funkcie vykoná ten, kto dostal svoje meno.

Funkcie implementované cez AJAX umožňujú volanie funkcie JavaScript prostredníctvom údajov prijatých zo servera. V skutočnosti odoslaním požiadavky na server nemusí táto alebo táto funkcia "vedieť", na ktorú funkciu pristupuje a s akými informáciami.

Ukončite funkciu a jej výsledok

V časti funkcie môžete napísať akékoľvek jazykové operátory, ktoré sú v skutočnosti určené na to. Vo vnútri funkcie sú k dispozícii premenné, ktoré sú opísané interne a externe, ale nie sú opísané v iných funkciách.

Ak chcete, aby funkcia vrátila výsledok, môžete použiť operátor JavaScript return: návrat. V tele funkcie môže existovať dostatočný počet výkazov návratnosti. Nie je vôbec potrebné, aby všetci vrátili výsledok toho istého typu.

Vývojári zvyčajne veľmi rešpektujú túto možnosť a v závislosti od situácie rozhodujú o tom, že funkciu opustí hneď, ako to bude možné.

Nie je potrebné prechádzať celým algoritmom funkcie, keď môžete opustiť skôr.

Funkčné argumenty

Argumenty vo funkcii sú odovzdané zoznamom oddeleným čiarkami, ktoré sú uvedené v zátvorkách a hneď za ním. Premenné sa používajú ako argumenty, ale hodnoty je možné odovzdať aj priamo. Aby funkcia JavaScript prešla funkciou na funkciu, stačí určiť jej názov bez zátvoriek.

V rámci funkcie, ktorá má vlastnosť dĺžky, sú k dispozícii variabilné argumenty . Pomocou argumentov [0], argumentov [1], ... až k posledným argumentom [arguments.length-1] môžete získať prístup k akémukoľvek argumentu funkcie.

Zmena argumentu funkcie je skutočne vo vnútri funkcie, ale nie mimo nej. Ak chcete zmeniť niečo mimo funkcie, musíte použiť operátor návratu jazyka JavaScript, pomocou ktorého prejdete potrebnou hodnotou smerom von.

Po dokončení funkcie sa všetko, čo bolo spojené s jej vykonaním, zničí. Počas behu môže funkcia meniť externé premenné okrem tých, ktoré sú popísané v iných funkciách vrátane interných.

Argument má vlastnosť callee, ktorá je určená na vyvolanie aktuálne vykonávanej funkcie. Ak zavoláte sami, funkcia JavaScript vo funkcii vám umožní vykonať rekurziu.

Používanie funkcií

Hlavnou obavou funkcií je obsluha udalostí prehliadača. Na tento účel je možné v takmer každej značke určiť názov udalosti a funkciu, ktorá ju spracováva. Môžete určiť niekoľko udalostí, ale pre každú udalosť je zadaná iba jedna funkcia.

Jedna funkcia môže zobrazovať viacero stránok a niekoľko udalostí. Pomocou tohto "parametra" môžete poskytnúť informácie o funkcii, odkiaľ bola volaná.

Klasické používanie funkcií JS je obsluha udalostí na prvkoch. V tomto príklade sa funkcia scfWecomeGo () alebo scfWelcomeCancel () volá vo formulári vstupu / výstupu návštevníka a keď je vybratá scfMenuItemClick (táto).

V druhom prípade je parameter "to" odovzdaný, čo vám umožní zázračne zistiť, od ktorého diva vznikol hovor. Všeobecne platí, že JavaScript je tak dobre implantovaný do DOMu a umožňuje vám navigovať cez jeho prvky tak pohodlne, zbierať potrebné informácie, že dynamika stránky môže byť jednoducho nepredvídateľná.

Funkcia nemusí vrátiť reťazec znakov, čísla ani inú funkciu. Môže vrátiť plný prvok HTML, v ktorom bude potrebný počet prvkov s vlastnými spracovateľmi udalostí.

Umiestnením takého prvku na stránku vývojár vytvára nové funkcie, čo je dobré z hľadiska riešenia problému a uspokojovania záujmov návštevníkov, ale je to zložité z hľadiska implementácie.

Začatie takého plnohodnotného vývoja je ľahké zamieňať sa vo svojom vlastnom kóde, v funkčných volaniach, vo chvíľach, kedy sa tvorí tento alebo ten obsah tejto alebo tej časti stránky. Pred prijatím takého smeru vývoja neškodí všetko dobre vážiť.

O distribuovanom myslení

Vývojár musí myslieť na úrovni všetkých prvkov stránky, na úrovni všetkých udalostí a mať jasnú predstavu o tom, ako to naozaj sú. Je to zložité, ale táto práca stojí za to.

V jazyku JavaScript sa môže funkcia odložiť na udalosť a môže existovať mnoho takýchto funkcií a udalosti majú vlastnosť šírenia a spadnutia do "rozsahu" rôznych obslužných programov.

V tomto príklade sa niekedy predtým nazýva funkcia, ktorá iniciovala vytvorenie položky navigačnej ponuky súboru. Organizácia stránok sa predpokladá, to znamená, že v okne je iba sedem súborov, ktoré je možné odstrániť a spracovať. Môžete sa pohybovať jednak kliknutím na riadok súboru, šípkami na klávesnici a blokmi po siedmich riadkoch.

V každom prípade existujú funkcie. Inými slovami, v takom jednoduchom príklade musíte napísať niekoľko desiatok funkcií, ktoré budú reagovať na rôzne udalosti, a niektoré z týchto funkcií budú riešiť rôzne varianty a situácie, ktoré sa na udalosti nevzťahujú.

Ak napríklad odstránite riadok, spodné riadky by sa mali pohybovať nahor. Ak to chcete urobiť, budete musieť urobiť nový výber, ktorý je triviálny a bohatý na zdroje, alebo prepočítať riadky, používať funkcie javascriptu a elegantne dosiahnuť cieľ.

Argumenty a výsledky funkcií

JavaScript vám umožňuje priniesť kód do stavu "full-featured". Normálne, keď argument funkcie je funkcia. Možnosť je možná, keď funkcia vráti funkciu. JavaScript to zaobchádza pomerne pokojne.

Je to dobrý mechanizmus, ale je to zložité, pokiaľ ide o implementáciu. Technicky je všetko prípustné, sémanticky poskytnúť logiku na prenos "funkčnej" iba kvalifikovaným vývojárom.

Keď v funkcii JavaScript funguje - kdekoľvek šiel, ale keď funkcia generuje funkciu, a to ešte jedna, potom je dosť ťažké sledovať logiku. Otázkou v skutočnosti nie je, či sa má kvalifikácia uplatniť, otázkou je dosiahnuť bezpečný a správny výsledok.

Vývojár starostlivosti je jasný a jednoduchý. Existuje úloha, potrebujete riešenie, nie chybu, ako je napríklad chyba "JavaScript je neistá operácia", čistú obrazovku alebo zastavenie celého motora prehliadača.

Ak argument je funkcia, potom vývojár prechádza premennou so špeciálnymi vlastnosťami, to znamená, že to nie je číslo, nie reťazec, nie objekt. Použitie takéhoto argumentu však môže viesť k zmene externých premenných a výsledok vykonania funkcie bude. V závislosti od toho, čo prešlo, dôjde k adekvátnym zmenám.

Vykonanie vygenerovaného kódu

Implementovať vykonanie kódu generovaného počas prevádzky iného kódu, môžete použiť "eval". Toto sa nepovažuje za vynikajúce riešenie, ale často nie je možné komplikovať kód s nadbytočnými funkciami, ale obmedziť sa na banálnu generáciu kódu JavaScript a jednoducho ho vykonať.

V tomto príklade je vložená riadka vložená do aktívnej časti niektorých informácií. Číslo diva a obsah informácií sa pri rôznych pozíciách líšia, pretože takéto rozhodnutie v tejto situácii nie je zaručené, aby sa zabezpečila situácia "javascript chyba operácie je neistá", ale to bude spoľahlivo dať požadovaný účinok.

Nuance paradigmy JavaScript "funkcia vo funkcii"

Ak existuje možnosť robiť bez prebytkov, je lepšie ho použiť. Všetky uvedené možnosti sú dobré. Samozrejme, v mnohých prípadoch je to jediné riešenie.

Klasický príklad rekurzie: faktoriálny výpočet. Tu je dosť ťažké napísať algoritmus, ktorý sa zasekne, ale je veľmi ľahké prekročiť hranice významu. Factorial rastie príliš rýchlo.

Obe rekurzia a funkcia, ktorá nazýva ďalšiu funkciu, ktorá môže robiť rozumné spätné volanie, je normou vecí.

Napríklad pravidelná tabuľka. V tabuľke môžu byť ďalšie tabuľky. Hniezdenie nemôže byť obmedzené. Ak chcete písať pre každú tabuľku, vlastný súbor funkcií je príliš veľký luxus.

Existuje veľa príkladov, a to všetko bude skutočnými a naliehavými úlohami, nie vôbec z oblasti programovania. To je dôvod, prečo je problém presne to, že nemôžete robiť bez prebytkov, vytvorený systém funkcií, presnejšie jeho ladenie a následná spoľahlivá práca sa stáva obavou nie JavaScript, ale developera.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 sk.birmiss.com. Theme powered by WordPress.