RekenaarsProgrammering

JavaScript: funksie funksie. Programmeertaal JS

Idees dinamiese inhoud web-HULPBRONNE vorm het die norm geword. Statiese bladsye en templates Web ontwerp uiteindelik voltooi hul missie.

Dit beteken egter moderne web-hulpbron hoef te word verteenwoordig deur 'n stel van bladsye wat gegenereer word deur die bediener en verfris die leser (JS + AJAX).

Web-gebaseerde bron op die oomblik van die aankoms van die besoeker kan 'n paar titels vir die rekord, 'n paar teks in die «kop", 'n paar reëls van die kode in die «liggaam» en almal. Die res van die "swanger" in die proses van die besoekers - dit is 'n ideale plek, of aspirant om een te wees.

Plaas die beskrywing en aard van funksies

опыт, наработаный многими десятилетиями. JavaScript - dit is 'n ervaring narabotany dekades. Dit het 'n beduidende geskiedenis van ontwikkeling, moderne gekwalifiseerde span skeppers ontwikkelaars. Taal goed deurdagte, betroubare, mooi en gee 'n werklike geleentheid vir ontwikkelaars om kode te skryf vir 'n ordentlike en self-verbetering.

Die konsep van 'n algoritme is 'n funksie bestaan nie hier nie in beginsel. Natuurlik, die ontwikkelaar kan op enige plek op die bladsy om script kode daarin te sit in te voeg en dit sal uitgevoer word. страницы? Maar wat is die punt in die kode, wat slegs een keer uitgevoer word: wanneer die laai (herlaai) die bladsy? Is dit moontlik om die aanvanklike waardes van wat sommige onbelangrik veranderlikes stel.

Script - hierdie plek is die regte beskrywing van veranderlikes en funksies, eerder as om 'n goeie stukkie van die kode geskryf vir sy eie onthalwe. Dit is 'n versameling van funksies is noodsaaklik en belangrik, miskien - hul wedersydse direkte verband, maar meer dikwels is dit anders. Plaas beskrywing van die funksie en die plek van sy aansoek is nie dieselfde ding nie.

Dit is nie nodig dat die funksie 'n ander funksie direk sal noem nie, maar dit kan indirek gedoen word deur die vorming van 'n dinamiese code. 'N Besoeker 'n besluit neem binne hierdie kode en werk heel anders stelsel funksies.

funksionele dinamika

Funksionele dinamika - is nie net en nie soseer hanteerders aan bladsy elemente is funksies wat die elemente van die bladsy te vorm, en van die onmiddellike hanteerders ook kan verander.

Die aksie vind plaas op die bladsy, na gelang van die elemente en die gedrag van besoekers op dit. Beweging van die muis, klawerbord, knoppies, klik, gebeure, items en ander omstandighede lei tot die bekendstelling van die nodige funksies.

Oorspronklik is daar geen konsekwentheid en daar is geen parallel. Daar is 'n voldoende antwoord op die web-hulpbron gebeure. Hoe vinnig JavaScript 'n spesifieke funksie vervul dit hang af van verskeie tegniese (rekenaar, kommunikasie lyne) en semantiese (logika algoritme, vakgebied, wat beteken dat die probleem) faktore.

Om die waarheid te kan geargumenteer word dat iets gewerk het in parallel, maar iets sal op sy beurt na iets, maar die betekenis van hierdie spesiaal maak, is nie. Dit is belangrik dat die JavaScript-funksie - dit is 'n geleentheid om 'n voldoende antwoord op die optrede van die besoeker te skep.

Hierdie nuwe denke in die ontwerp: verspreide verwerking in die dieptes van 'n enkele leser!

Die sintaksis vir veranderlikes en funksies

JavaScript-veranderlikes word in die tag «script», en in die liggaam van die funksie. Funksies word op dieselfde manier gedefinieer. Spesiale betekenis te skryf binne die funksie daar is 'n ander funksie, maar dit mag nodig om verskeie redes wees, en dit is heel redelik.

Beskrywing van die funksie begin gewoonlik met die navraag «funksie", gevolg deur sy naam, die lys van argumente in hakies, geskei deur kommas, en die funksie liggaam in draadjies.

In hierdie voorbeeld word twee funksies beskryf wat AJAX-uitruiling tussen die bladsy en die bediener voorsien. Deels scXHR hierbo beskryf, omdat beskikbaar in beide InitXML, en binne WaitReplySC.

Die naam en parameter funksie "funksie"

Daar is aangebied die asynchrone weergawe wanneer JavaScript-funksie funksie genoem na die bediener antwoord. So, die ontvangs van 'n reaksie van die bediener, WaitReplySC toegang tot die bladsy tag, vul die inligting ontvang en veroorsaak ander funksies, wat goed kan inisieer die volgende versoek aan die bediener.

Hier is dit ook belangrik om daarop te let dat WaitReplySC - 'n funksie. scXHR.onreadystatechange = WaitReplySC она передается как параметр. Maar in lyn scXHR.onreadystatechange = WaitReplySC dit is verby as 'n parameter. Hierdie algemene reël oordragfunksie na ander funksies as parameters. Skerp hakies en aan hulle sy parameter (s) - die funksie sal onmiddellik uitgevoer word. Vertel deur naam net, so what goed. Oproep funksie sal die een wat haar naam het nie.

Die funksie via AJAX geïmplementeer word, kan jy 'n JavaScript-funksie deur die ontvang van die bediener data te bel. Trouens, 'n versoek om die bediener, een of die ander funksie kan glad nie "weet" wat funksioneer sy draai, en met watter inligting.

Uit funksie en sy gevolg

Die liggaam van die funksie, kan jy enige taal operateurs, wat, in werklikheid, want dit is bedoel skryf. Binne eienskappe veranderlikes binne en buite verklaar, maar nie dié wat beskryf in ander funksies.

As jy wil hê dat die funksie om 'n uitslag terugkeer, kan jy die JavaScript terugkeer verklaring gebruik: terugkeer. Die liggaam van die funksie kan 'n voldoende aantal terugkeer state wees. Dit is nie nodig dat almal die gevolg van dieselfde tipe sal terugkeer.

Tipies, is ontwikkelaars vereer hierdie geleentheid en, afhangende van die situasie, besluit om so gou as moontlik terug te trek uit die funksie.

Dit is nie nodig om te hardloop deur die hele algoritme van funksies, wanneer jy kan vroeër uitkom.

funksie argumente

Argumente geslaag om die funksie lys, geskei deur kommas, is ingesluit in hakies, en is net ná haar naam. Die argumente gebruik veranderlike name, maar jy kan waardes direk slaag. 'N JavaScript-funksie te slaag in 'n funksie, jy hoef net om sy naam te gee sonder hakies.

Binne-in die funksie is beskikbaar veranderlike argumente, wat 'n lengte eiendom het. Jy kan verwys na enige argument funksie deur argumente [0], argumente [1], ... tot die laaste argumente [arguments.length-1].

die funksie van die argument te verander is regtig in die funksie, maar nie buite dit. Ten einde iets buite die funksie verander, moet die operateur JavaScript terugkeer gebruik, waardeur slaag die vereiste waarde aan die buitekant.

Na afloop van die funksie eindig, sal alles wat verband hou met die implementering daarvan, vernietig. Tydens die uitvoering van die funksie kan die eksterne veranderlikes verander, behalwe dié wat beskryf in ander funksies, insluitend dié in die binneland.

Ons het argumente callee eiendom, wat bedoel is om 'n funksie wat uitgevoer word op 'n gegewe tyd te bel. As die oorsaak self, sal die JavaScript weergawe van die funksie in die funksie rekursie te implementeer.

Die gebruik van funksies

Die grootste bekommernis van die funksies - om die geleentheid by die leser te dien. Om hierdie byna elke tag doen het die vermoë om 'n naam gebeurtenis en funksie van die vervaardiging spesifiseer. Jy kan verskeie gebeure spesifiseer, maar elke geval aangedui net een funksie.

Een funksie kan hanteer verskeie bladsy elemente en 'n paar gebeure. Deur «hierdie» opsie, kan jy die inligting funksie waar dit genoem oordra.

Die klassieke gebruik van JS-funksies - die event handlers op die elemente. In hierdie voorbeeld scfWecomeGo () funksie of scfWelcomeCancel () genoem word in die toevoer / afvoer vorm van die besoeker, en wanneer die keuse van die maatskappy af scfMenuItemClick (hierdie).

In die laasgenoemde geval, die parameter geslaag om «hierdie", wat dit moontlik maak om wonderbaarlik leer uit wat diva genoem. Eintlik is JavaScript is so kwalitatief ingeplant in die DOM, en dit is so gerieflik kan jy die elemente navigeer, om die nodige inligting wat die bladsye dinamika net onvoorspelbaar kan wees versamel.

Die funksie hoef nie 'n string, nommer, of ander funksie terugkeer. Dit kan 'n volle HTML-element terugkeer, en wat is die vereiste aantal elemente, met hul hanteerders, hul byeenkomste.

Deur die plasing van 'n element op die bladsy, die ontwikkelaar skep 'n nuwe funksie wat goed is in terme van die oplossing van die probleem en voldoen aan die belange van die besoekers, maar baie moeilik in terme van implementering.

Sedert die ontwikkeling van so 'n ten volle funksionele, maklik om te verdwaal in inheemse kode, in funksie oproepe, in oomblikke wanneer gevorm of wat die inhoud van die een of ander van die bladsy. Voordat hulle so 'n rigting van ontwikkeling, nie verhinder 'n goed weeg alles.

Op die verspreiding van denke

Die ontwikkelaar het om te dink aan die vlak van al die elemente van die bladsy, in elk geval, en het 'n duidelike aanbieding van hoe alles werklik gebeur. Dit is moeilik, maar die werk is die moeite werd.

In JavaScript, kan die funksie word uitgestel tot 'n gebeurtenis, en sulke eienskappe kan baie wees, en gebeure het 'n neiging om te versprei en kry in die "gebied van sigbaarheid" van die verskillende verwerkers.

In hierdie voorbeeld, iewers voor die funksie genoem word, wat 'n item lêer navigasie spyskaart geïnisieer. Daar word aanvaar blaai, dit is in die venster net sewe lêers, wat verwyder kan word en verwerk word. Verskuif kan word as 'n lêer deur te kliek op die ry, en die pyltjie sleutels en blokke van sewe rye.

In elk geval het sy eie funksie. Met ander woorde, in hierdie eenvoudige voorbeeld, moet jy 'n paar dekades van die funksies wat sal reageer op verskeie geleenthede skryf, en 'n paar van hierdie funksies sal 'n verskeidenheid van opsies en situasies wat die gebeure nie behoort te hanteer.

Byvoorbeeld, wanneer die verwydering van die bottom line moet opwaarts verplaas. Dit sal vereis dat óf maak 'n nuwe keuse wat alledaags en duidelik 'n hulpbron, of om lyne te tel, gebruik 'n JavaScript-funksie op die skikking en die doel elegante bereik.

Die argumente en resultate van werksaamhede

JavaScript kan jy kode vir die status "full-featured" bring. Gewoonlik, wanneer die argument van die funksie is die funksie. Toegelaat opsie, die funksie gee terug 'n funksie. JavaScript neem dit rustig.

Dit is 'n goeie meganisme, maar nogal ingewikkeld in verband met die uitvoering. Tegnies toelaatbaar semanties te voorsien "funksionele" logika oordrag slegs deur 'n gekwalifiseerde ontwikkelaar.

Wanneer 'n JavaScript-funksie in 'n funksie - alles reg, maar wanneer die funksie genereer 'n funksie, en dat 'n ander, die logika is baie moeilik om te volg. Trouens, die vraag is nie of om die vaardighede toe te pas, die vraag is om veilige en korrekte resultaat te verkry.

Ontwikkelaar sorg is duidelik en eenvoudig. Daar is 'n probleem, jy 'n oplossing nodig, nie 'n fout soos «JavaScript fout die operasie is onseker» , 'n leë skerm, of stop al leser enjin.

As die argument is 'n funksie, dan is die ontwikkelaar om 'n veranderlike met spesiale eienskappe slaag, wat nie 'n nommer, nie 'n string, nie 'n voorwerp. Maar die gebruik van so 'n argument kan lei tot die feit dat die eksterne veranderlikes verander en is die gevolg van die funksie uitvoering. Afhangende van die veranderinge wat voldoende oorgedra sal word.

Uitvoering van gegenereerde kode

Implementeer kode uitgevoer gegenereer in die loop van die werk ander kode, is dit moontlik deur middel van «eval». Dit is nie beskou as 'n uitstekende oplossing wees, maar dikwels kan nie bemoeilik die kode met onnodige funksies, en tot die vorming van triviale lyn van JavaScript-kode beperk en eenvoudig uit te voer nie.

In hierdie voorbeeld word die insetsel gevorm steek in uitvoerbaar div inligting. Diva en inligting inhoud vir verskillende aantal verskillende posisies, want so 'n besluit in hierdie situasie nie voorsien 'n gewaarborgde situasie «javascript fout die operasie is onseker» , maar ferm die gewenste uitwerking te gee.

Nuance JavaScript paradigmaskuif "funksie in die funksie"

As jy kan doen sonder die tierlantyntjies, dit is beter om dit te gebruik. Al hierdie opsies is goed. Natuurlik, in baie gevalle, dit is die enigste oplossing.

'N Klassieke voorbeeld van rekursie: die faktoriaal. Dis moeilik genoeg om 'n algoritme wat lus skryf, maar dit is baie eenvoudig, jy kan die koevert waardes stoot. Faktoriaal groei te vinnig.

Maar rekursie en funksie noem 'n ander funksie, wat ingeligte terugbel kan maak - normale dinge.

Byvoorbeeld, 'n gereelde tafel. Die ander tafel kan 'n tafel wees. Nes kan nie beperk word. Skryf vir elke tafel sy eie stel van die funksies - te veel luukse.

Sulke voorbeelde is talle, en al hierdie dinge sal 'n ware en dringende probleem wees, nie as gevolg van ontwikkeling. Dit is waarom die probleem lê in die feit dat geen-fieterjasies nie 'n stelsel van funksies, meer presies, sy ontfouting en daaropvolgende betroubare werking raak JavaScript sorg, en ontwikkelaar.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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