Kompjutera, Programimi
JavaScript: Funksioni Funksioni. gjuhë programimi JS
Ide përmbajtje dinamike për të formuar web-Resources janë bërë normë. faqet statike dhe design templates Web fund përfundoi misionin e tyre.
Megjithatë, modern web-burim nuk duhet të përfaqësohet nga një grup i faqeve të krijuara nga serveri dhe rifreskoni shfletuesin (JS + AJAX).
depo Web-bazuar në momentin e ardhjes së vizitorëve mund të jetë një çift i titujve për rekord, disa tekst në «kokë», disa rreshta të kodit në «trupin» dhe të gjithë. Pjesa tjetër e "krijoj" në procesin e vizitorëve - ajo është një vend ideal, ose aspirojnë të jetë një.
Vendi përshkrimin dhe natyrën e funksioneve
опыт, наработаный многими десятилетиями. JavaScript - kjo është një përvojë narabotany dekada. Ajo ka një histori të rëndësishme të zhvillimit, moderne ekip të kualifikuar krijuesit zhvilluesit. Gjuha e menduar mirë, i besueshëm, i bukur dhe i jep një mundësi të vërtetë për zhvilluesit për të shkruar kod për një të mirë dhe vetë-përmirësimit.
Koncepti i një algoritmi është një funksion këtu nuk ekziston në parim. Natyrisht, zhvilluesi mund të kudo në faqe për të futur kodin script për të vënë në të dhe ajo do të ekzekutohet. страницы? Por ajo që është pika në kodin, e cila është ekzekutuar vetëm një herë: kur të ngarkimit (reloading) faqe? A është e mundur për të vendosur vlerat fillestare të asaj që disa variablave të parëndësishme.
Script - ky vend është përshkrimi i duhur i variablave dhe funksioneve, më tepër se një pjesë e mirë e kodit të shkruar për hir të vet. Kjo është një grup i funksioneve është thelbësor dhe i rëndësishëm, ndoshta - lidhja e tyre të përbashkët të drejtpërdrejtë, por më shpesh është e ndryshme. Vendi përshkrimi i funksionit dhe vendin e zbatimit të saj nuk është e njëjta gjë.
Nuk është e nevojshme që funksioni do të thërrasë një tjetër funksion të drejtpërdrejtë, por kjo mund të bëhet në mënyrë indirekte përmes formimit të kodit dinamik. Një vizitor merr një vendim brenda këtij kodi dhe punon funksione krejt të ndryshme të sistemit.
dinamika funksionale
Dinamika funksionale - nuk është vetëm dhe jo aq shumë handlers caktuar të elementeve faqe janë funksione që formojnë elementet e faqes, dhe e handlers menjëhershme, gjithashtu, mund të ndryshojë.
Veprimi zhvillohet në faqe, në varësi të elementeve dhe sjelljen e vizitorit në të. Lëvizja e miut, tastierës, buttons, klikime, ngjarjet, artikuj dhe rrethana të tjera të çojë në nisjen e funksioneve të nevojshme.
Fillimisht nuk ka konsistencë dhe nuk ka paralele. Ka një përgjigje adekuate për ngjarjet e web-burimeve. Sa shpejt JavaScript përmbush një funksion të veçantë kjo varet nga shumë teknik (kompjuter, linjat e komunikimit) dhe semantike (algorithm logjikë, fushën e subjektit, që do të thotë problem) faktorët.
Në fakt, mund të thuhet se diçka ka punuar në mënyrë paralele, por diçka do të kthehet pas diçkaje, por kuptimi i kësaj të veçantë nuk është. Është e rëndësishme që funksioni JavaScript - kjo është një mundësi për të krijuar një përgjigje adekuate ndaj veprimeve të vizitorit.
Ky mendim i ri në projektimin: shpërndarë përpunim në thellësitë e një shfletues të vetëm!
Sintaksa për variablat dhe funksionet
JavaScript-variablat janë vendosur në tag «shkrimit», dhe në trupin e funksionit. Funksionet janë të përcaktuara në të njëjtën mënyrë. domethënie të veçantë për të shkruar brenda funksionit ka një tjetër funksion, por ajo mund të jetë e nevojshme për arsye të ndryshme, dhe kjo është mjaft e arsyeshme.
Përshkrimi i funksionit zakonisht fillon me fjalen «funksionit», e ndjekur nga emri i saj, lista e argumenteve në kllapa, të ndara me presje, dhe trupi funksionojnë në formatimin e teksteve.
Në këtë shembull, dy funksionet janë përshkruar që të sigurojë AJAX-shkëmbimin në mes të faqes dhe serverit. Pjesërisht scXHR të përshkruara më sipër, sepse në dispozicion në të dy InitXML, dhe brenda WaitReplySC.
Emër funksioni dhe parametër "Funksioni"
Nuk është paraqitur versionin asinkron kur funksioni JavaScript-funksion është quajtur pas përgjigjes server. Kështu, duke marrë një përgjigje nga serveri, WaitReplySC accesses faqe tag, mbush informacionin e marrë dhe shkakton funksione të tjera, të cilat mund të iniciojë kërkesën tjetër në server.
Këtu ajo është gjithashtu e rëndësishme të theksohet se WaitReplySC - një funksion. scXHR.onreadystatechange = WaitReplySC она передается как параметр. Por në linjë scXHR.onreadystatechange = WaitReplySC ajo është e kaluar si një parametër. Ky transfer rregull funksion të përgjithshme për funksionet e tjera si parametra. kllapa cepa dhe u dha atyre parametrin e saj (e) - funksioni do të ekzekutohet menjëherë. Transmetuar nga emri i vetëm, dhe kështu që çfarë. Funksioni Call do të bëjë atë që mori emrin e saj.
Funksionalitetin zbatuar nëpërmjet AJAX, ju lejon për të thirrur një funksion JavaScript nëpër të dhënat e marra nga serveri. Në fakt, duke dërguar një kërkesë në server, një ose funksion tjetër mund të mos aspak "e di", e cila të funksionojë ajo kthehet, dhe me çfarë informacioni.
Funksioni jashtë dhe rezultati i saj
Trupi i funksionit, ju mund të shkruani ndonjë operatorë të gjuhës, të cilët, në fakt, për të është menduar. Karakteristika brenda janë variabla deklaruar brenda dhe jashtë, por jo ato që janë përshkruar në funksionet e tjera.
Nëse ju doni funksioni për t'u kthyer një rezultat, ju mund të përdorni deklaratën JavaScript kthimit: kthimin. Trupi i funksionit mund të jetë një numër të mjaftueshëm të deklaratave të kthimit. Nuk është e nevojshme që të gjithë prej tyre do të kthejë rezultatin e të njëjtit lloj.
Në mënyrë tipike, zhvilluesit janë të nderuar këtë mundësi dhe, në varësi të situatës, të vendosë të tërhiqet nga funksioni sa më shpejt të jetë e mundur.
Nuk është e nevojshme për të drejtuar nëpër tërë algorithm e funksioneve, kur ju mund të merrni nga më parë.
argumentet funksion
Argumentet janë kaluar në listën funksion, të ndara me presje, janë mbyllur në kllapa, dhe janë vetëm emrin e saj. Argumentet e përdorur emrat e ndryshueshme, por ju mund të kalojë vlerat direkt. Për të kaluar një funksion JavaScript në një funksion, ju vetëm duhet të specifikoni emrin e vet pa kllapa.
Brenda funksionit është argumentet dispozicion ndryshueshme, e cila ka një pronë gjatësi. Ju mund t'i referohet çdo funksion argumentit përmes argumenteve [0], argumente [1], ... me argumentet e fundit [arguments.length-1].
Ndryshuar funksionin e argumentit është me të vërtetë në brendësi të funksionit, por jo jashtë saj. Në mënyrë që të ndryshojë diçka jashtë funksionit, operatori duhet të përdorin JavaScript kthim, përmes të cilave kalojnë vlerën e kërkuar në pjesën e jashtme.
Pas funksioni përfundon, të gjitha që është e lidhur me zbatimin e saj, do të shkatërrohen. Gjatë ekzekutimit të funksionit mund të ndryshojë variablave të jashtëm, me përjashtim të atyre që janë përshkruar në funksionet e tjera, duke përfshirë ato në të brendshme.
Ne kemi argumente pronësore callee, e cila ka për qëllim për të thirrur një funksion që kryhet në një kohë të dhënë. Nëse shkaku vetë, versioni JavaScript e funksionit në funksion do të zbatojë recursion.
Përdorimi i funksioneve
Shqetësimi kryesor i funksioneve - për t'i shërbyer shfletuesin ngjarje. Për ta bërë këtë pothuajse çdo tag ka aftësinë për të specifikoni një emër ngjarje dhe funksionin e prodhimit të saj. Ju mund të specifikoni ngjarje të shumta, por çdo ngjarje është treguar vetëm një funksion.
Një funksion mund të trajtojë të shumta elementet e faqe dhe një ngjarje pak. Nëpërmjet «ky» opsion, ju mund të transferojë funksionin e informacionit ku ishte quajtur.
Përdorimi klasik i JS-funksioneve - handlers ngjarje në elementet. Në këtë shembull scfWecomeGo () Funksioni ose scfWelcomeCancel () quhet në formën input / output të vizitorëve, dhe kur zgjedhjen mode operativ scfMenuItemClick (këtë).
Në rastin e fundit, parametri kaluar në «këtë», e cila ju lejon për të mësuar në mënyrë të mrekullueshme nga ajo që është diva u quajt. Në fakt, JavaScript është aq cilësore futur në DOM, dhe ajo është aq e përshtatshme ju lejon të lundruar elementet e tij, për të mbledhur informacionin e nevojshëm që faqet dinamika thjesht mund të jenë të paparashikueshme.
Funksioni nuk ka për t'u kthyer një varg, numër, ose funksion tjetër. Ajo mund të kthehen një HTML-element të plotë, dhe që është numri i kërkuar i elementeve, me handlers e tyre, ngjarjet e tyre.
Duke e vendosur një element në faqe, zhvilluesi krijon një funksionalitet të ri që është e mirë në drejtim të zgjidhjes së problemit dhe për të përmbushur interesat e vizitorëve, por mjaft e vështirë në aspektin e implementimit.
Që nga zhvillimi i tillë një plotësisht funksionale, të lehtë për të marrë humbur në kodin amtare, në thirrje funksion, në momentet kur formoi ose që përmbajtja e një ose një tjetër të faqes. Para se të marrë një drejtim të tillë të zhvillimit, nuk pengojnë një pus peshojnë gjithçka.
Në shpërndarjen e të menduarit
Zhvilluesi ka për të menduar në nivel të të gjitha elementeve të faqes, në të gjitha ngjarjet, dhe të ketë një prezantim të qartë se si çdo gjë në të vërtetë ndodh. Është e vështirë, por puna është e vlefshme.
Në JavaScript, funksioni mund të vonohet deri në disa ngjarje, dhe karakteristika të tilla mund të jenë shumë, dhe ngjarjet kanë një tendencë për të përhapur dhe për të marrë në "sferën e shikimit" të procesorë të ndryshëm.
Në këtë shembull, diku para se funksioni është quajtur, e cila inicioi një artikull menu navigacion file. Supozohet paging, që është në dritare vetëm shtatë fotografi, të cilat mund të hiqet dhe të përpunuara. Mund të zhvendoset si një file duke klikuar në rreshtin, dhe çelësat arrow dhe blloqe prej shtatë rreshtave.
Në çdo rast ka funksionin e vet. Me fjalë të tjera, në këtë shembull të thjeshtë, ju duhet të shkruani disa dhjetra karakteristika që do të reagojë ndaj ngjarjeve të ndryshme, dhe disa nga këto funksione do të trajtojë një shumëllojshmëri të opsioneve dhe situatave që ngjarjet nuk i përkasin.
Për shembull, kur të hiqni linjë fund duhet të zhvendosur upwardly. Kjo do të kërkojë të bëjë një përzgjedhje të re që e zakonshme dhe qartë një burim, apo për të numëruar rreshta, përdorni një funksion javascript në grup dhe për të arritur qëllimin elegante.
Argumentet dhe rezultatet e funksioneve
JavaScript ju lejon të sjellë kodin për statusin "të plotë me tipare". Normalisht, kur argumenti i funksionit është funksioni. opsion lejuar, funksioni kthen një funksion. JavaScript merr atë mjaft të qetë.
Ky është një mekanizëm i mirë, por më tepër e komplikuar në lidhje me zbatimin. Teknikisht lejueshme semantike të sigurojë "funksionale" transmetimin logjikë vetëm nga një zhvillues të kualifikuar.
Kur një funksion JavaScript në një funksion - të gjithë të drejtë, por kur funksioni gjeneron një funksion, dhe se një tjetër, logjika është mjaft e vështirë për t'u ndjekur. Në fakt, pyetja nuk është nëse për të aplikuar aftësitë, pyetja është për të marrë rezultat të sigurt dhe të saktë.
Kujdesi Developer është e qartë dhe e thjeshtë. Ka një problem, ju keni nevojë për një zgjidhje, jo një bug si «JavaScript gabim operacioni është i pasigurt» , një ekran bosh, ose të ndaluar të gjitha motorin e shfletuesit.
Nëse argumenti është një funksion, atëherë zhvilluesi për të kaluar një ndryshore me pronat të veçanta, që nuk është një numër, jo një varg, jo një objekt. Por përdorimi i një argument të tillë mund të çojë në faktin se të ndryshuar variablat e jashtme dhe është rezultat i ekzekutimit funksionit. Varësisht nga ndryshimet që do të jenë adekuate transferuar.
Ekzekutimi i kodit të gjeneruara
Zbatuar kodin e ekzekutimit të krijuara në rrjedhën e punës kodit tjetër, kjo është e mundur me anë të «eval». Kjo nuk është konsideruar të jetë një zgjidhje e shkëlqyer, por shpesh nuk mund të komplikojë kodin me funksione të panevojshme, dhe për të kufizuar formimin e linjës parëndësishëm të kodit JavaScript dhe thjesht ekzekutuar atë.
Në këtë shembull, insert është formuar syth në div që vepron disa informacione. Diva dhe Përmbajtja e informacionit për numër të ndryshëm të pozitave të ndryshme, për shkak se një vendim i tillë në këtë situatë nuk do të japin një situatë të garantuara «javascript gabim operacioni është i pasigurt» , por në mënyrë të vendosur të japin efektin e dëshiruar.
Nuancë JavaScript paradigmë ndryshim "funksion në funksion"
Nëse ju mund të bëni pa frills, është më mirë për të përdorur atë. Të gjitha këto opsione janë të mira. Natyrisht, në shumë raste, kjo është zgjidhja e vetme.
Një shembull klasik i recursion: The faktorial. Është mjaft e vështirë për të shkruar një algoritëm që do loop, por ajo është shumë e thjeshtë, ju mund të shtyjë vlerat zarf. Faktorial po rritet shumë shpejt.
Megjithatë, recursion, dhe funksionin e quan një funksion tjetër, e cila mund të bëjë të informuar callback - gjëra normale.
Për shembull, një tryezë të rregullt. Tabela tjetër mund të jetë një tavolinë. Fole nuk mund të kufizohet. Shkruaj për çdo tavolinë vendosur vet të karakteristikave - shumë luksoze.
Shembuj të tillë janë të shumta, dhe e gjithë kjo do të jetë një problem i vërtetë dhe të ngutshme, jo për shkak të programimit. Kjo është arsyeja pse problemi qëndron në faktin se jo-frills nuk do të ngritur një sistem të funksioneve, më saktësisht, debugging e saj dhe funksionimin e mëvonshme të besueshme bëhet kujdes JavaScript, dhe Developer.
Similar articles
Trending Now