Kompjuters, Ipprogrammar
JavaScript: funzjoni funzjoni. lingwa ta 'programmar JS
Ideat kontenut dinamiku li jiffurmaw web-RIŻORSI saru n-norma. paġni statiċi u d-disinn templates Web finalment tlesta missjoni tagħhom.
Madankollu, moderna web-riżorsi ma għandhom ikunu rappreżentati minn sett ta 'paġni ġġenerati mill-server u jġedded l-browser (JS + Ajax).
Web bbażati fuq repożitorju fil-mument tal-wasla tal-viżitatur jista 'jkun ftit titoli għar-rekord, xi test fil-"ras", ftit linji tal-kodiċi fil-"qasam" u kollha. Il-bqija ta ' "konċepita" fil-proċess ta' viżitaturi - huwa post ideali, jew jaspiraw li jkun wieħed.
Poġġi d-deskrizzjoni u n-natura tal-funzjonijiet
опыт, наработаный многими десятилетиями. JavaScript - Huwa ta 'għexieren ta' snin esperjenza narabotany. Hija għandha storja sinifikanti ta 'żvilupp, tim kwalifikat kreaturi iżviluppaturi moderna. Lingwa maħsuba tajjeb, affidabbli, sbieħ u jagħti opportunità reali għall-iżviluppaturi biex jikteb il-kodiċi għal-titjib awto deċenti u.
Il-kunċett ta 'algoriżmu huwa funzjoni hawn ma jeżistix fil-prinċipju. Naturalment, l-iżviluppatur jista kullimkien fuq il-paġna li daħħal kodiċi iskrittura biex jitqiegħed fis dan u se jiġu esegwiti. страницы? Imma dak huwa l-punt fil-kodiċi, li jiġi esegwit darba biss: meta jitgħabba (tagħbija mill-ġdid) il-paġna? Huwa possibbli li jiġu stabbiliti l-valuri inizjali ta 'dak xi varjabbli insinifikanti.
Script - dan il-post huwa d-deskrizzjoni dritt tal-varjabbli u l-funzjonijiet, aktar minn biċċa tajba ta 'kodiċi bil-miktub fiha nfisha. Huwa sett ta 'funzjonijiet hija essenzjali u importanti, forsi - konnessjoni diretta reċiproku tagħhom, iżda aktar spiss huwa differenti. Deskrizzjoni post tal-funzjoni u l-post ta 'l-applikazzjoni tagħha mhijiex l-istess ħaġa.
Mhuwiex meħtieġ li l-funzjoni se sejħa funzjoni oħra direttament, iżda dan jista 'jsir indirettament permezz tal-formazzjoni ta' kodiċi dinamiku. A viżitatur jieħu deċiżjoni fi żmien dan il-kodiċi u xogħlijiet funzjonijiet tas-sistema pjuttost differenti.
dinamika funzjonali
dinamika funzjonali - mhux biss u mhux tant handlers assenjati elementi paġna huma funzjonijiet li jiffurmaw l-elementi tal-paġna, u tal-maniġġ immedjati, wisq, jista 'jinbidel.
L-azzjoni sseħħ fuq il-paġna, jiddependi fuq l-elementi u l-imġiba viżitatur fuqha. Moviment tal-maws, tastiera, buttuni, klikks, avvenimenti, oġġetti u ċirkostanzi oħra jwassal għall-bidu tal-funzjonijiet meħtieġa.
Oriġinarjament m'hemm l-ebda konsistenza u m'hemm l-ebda parallel. Hemm rispons adegwat għall-avvenimenti web-riżorsi. Kif fast JavaScript jissodisfa funzjoni partikolari dan jiddependi fuq ħafna tekniku (kompjuter, linji ta 'komunikazzjoni) u semantika (algoritmu loġika, qasam tas-suġġett, jiġifieri l-problema) fatturi.
Fil-fatt jista 'jiġi argumentat li xi ħaġa ħadem b'mod parallel, imma xi ħaġa ser idur wara xi ħaġa, iżda l-tifsira ta' dan speċjali mhuwiex. Huwa importanti li l-funzjoni JavaScript - huwa opportunità biex jinħolqu rispons adegwat għall-azzjonijiet tal-viżitatur.
Dan il-ħsieb ġdid fid-disinn: distribwit ipproċessar fil-fond ta 'browser waħda!
Is-sintassi għall-varjabbli u funzjonijiet
JavaScript-varjabbli huma mqiegħda fil-tikketta "iskrittura", u fil-ġisem tal-funzjoni. Funzjonijiet huma definiti bl-istess mod. tifsira speċjali li tikteb ġewwa l-funzjoni hemm funzjoni oħra, iżda jista 'jkun neċessarju għal raġunijiet varji, u huwa pjuttost raġonevoli.
Deskrizzjoni tal-funzjoni ġeneralment tibda bil-"funzjoni" keyword, segwit mill-isem tagħha, il-lista ta 'argumenti fil-parentesi, separati minn virgoli, u l-korp funzjoni ċineg.
F'dan l-eżempju, żewġ funzjonijiet huma deskritti li jipprovdu Ajax-iskambju bejn il-paġna u s-server. Parzjalment scXHR deskritt hawn fuq, minħabba disponibbli kemm InitXML, u fi ħdan WaitReplySC.
L-isem funzjoni u parametru "funzjoni"
Hemm ġie ppreżentat l-verżjoni mhux sinkroniku meta funzjoni JavaScript funzjoni tissejjaħ wara r-reazzjoni server. Għalhekk, jirċievu rispons mis-server, WaitReplySC aċċessi l-tikketta paġna, timla l-informazzjoni rċevuta u l-kawżi funzjonijiet oħra, li jista 'tibda t-talba li jmiss għall-server.
Hawnhekk huwa wkoll importanti li wieħed jinnota li WaitReplySC - funzjoni. scXHR.onreadystatechange = WaitReplySC она передается как параметр. Iżda konformi scXHR.onreadystatechange = WaitReplySC huwa mgħoddi bħala parametru. Din il-funzjoni ġenerali trasferiment regola għall-funzjonijiet oħra kif parametri. parentesi ippuntati u tahom parametru (i) tagħha - il-funzjoni ser jiġu esegwiti minnufih. Ħrejjef minn isem biss, sew iva, liema. funzjoni Sejħa se tagħmel dak li ltqajna l-isem tagħha.
Il-funzjonalità implimentat permezz Ajax, tippermetti li inti sejħa funzjoni JavaScript permezz tal-informazzjoni riċevuta mis-server. Fil-fatt, jibgħat talba lis-server, wieħed jew l-karatteristika oħra jistgħu ma xejn "jaf" li jiffunzjonaw hi dawriet, u ma 'liema informazzjoni.
funzjoni out u r-riżultat tiegħu
Il-korp tal-funzjoni, inti tista 'tikteb xi operaturi lingwa, li, fil-fatt, għall huwa maħsub. Karatteristiċi Ġewwa huma varjabbli ddikjarati ġewwa u barra, iżda mhux dawk li huma deskritti fil-funzjonijiet l-oħra.
Jekk trid li l-funzjoni li tirritorna riżultat, tista 'tuża l-istqarrija tar-ritorn JavaScript: ritorn. Il-korp tal-funzjoni tista 'tkun numru suffiċjenti ta' dikjarazzjonijiet ta 'ritorn. Mhuwiex meħtieġ li kollha kemm se terġa 'lura r-riżultat tal-istess tip.
Tipikament, l-iżviluppaturi huma revered din l-opportunità u, skond is-sitwazzjoni, tiddeċiedi li tirtira mill-funzjoni aktar fis possibbli.
Mhuwiex meħtieġ li jgħaddi mill-algoritmu sħiħa ta 'funzjonijiet, meta inti tista' tikseb mill-ewwel.
argumenti funzjoni
Argumenti huma mgħoddija għal-lista funzjoni, separati minn virgoli, huma magħluqa fil-parentesi, u huma biss wara l-isem tagħha. L-argumenti użati ismijiet varjabbli, imma int tista 'tgħaddi valuri direttament. Jgħaddu funzjoni JavaScript fil-funzjoni, inti biss bżonn li jispeċifikaw l-isem tagħha mingħajr parentesi.
Ġewwa l-funzjoni hija argumenti varjabbli disponibbli, li għandha proprjetà tul. Tista 'tirreferi għal xi funzjoni argument permezz argumenti [0], l-argumenti [1], ... għall-aħħar argumenti [arguments.length-1].
Nibdlu l-funzjoni tal-argument huwa verament ġewwa l-funzjoni imma mhux barra minnha. Sabiex ibiddel xi ħaġa barra mill-funzjoni, l-operatur għandu juża ritorn JavaScript, li permezz tiegħu jgħaddu l-valur meħtieġ għal barra.
Wara l-funzjoni finituri, dak kollu li kien assoċjat bl-implimentazzjoni tagħha, se jiġu meqruda. Waqt l-eżekuzzjoni tal-funzjoni tista 'tinbidel il-varjabbli esterni, ħlief dawk li huma deskritti fil-funzjonijiet oħra, inklużi dawk fl-intern.
Għandna argumenti proprjetà callee, li hija maħsuba biex sejħa funzjoni li hija mwettqa fi żmien partikolari. Jekk il-kawża nnifisha, il-verżjoni JavaScript tal-funzjoni fil-funzjoni se timplimenta recursion.
Bl-użu funzjonijiet
It-tħassib ewlieni tal-funzjonijiet - biex iservi l-browser avveniment. Biex tagħmel dan kważi kull tikketta għandu l-abbiltà li tispeċifika isem avveniment u l-funzjoni tal-manifattura tagħha. Tista 'tispeċifika l-avvenimenti multipli, iżda kull avveniment huwa indikat biss funzjoni waħda.
funzjoni waħda jistgħu jimmaniġġjaw elementi paġna multipli u avvenimenti ftit. Permezz «din» għażla, inti tista 'titrasferixxi l-funzjoni informazzjoni fejn kien imsejjaħ.
L-użu klassika ta 'JS-funzjonijiet - l-maniġġ avveniment dwar l-elementi. F'dan l-eżempju scfWecomeGo () funzjoni jew scfWelcomeCancel () huwa msejjaħ fil-forma input / output tal-viżitatur, u meta jintgħażlu l-mod tat-tħaddim scfMenuItemClick (dan).
Fl-aħħar każ, il-parametru mgħoddi lill «dan", li tippermetti li inti miraculously jitgħallmu minn dak li huwa Diva kien jissejjaħ. Attwalment, JavaScript huwa hekk kwalitattivament impjantat fil-DOM, u huwa għalhekk konvenjenti jippermettilek li jinnaviga-elementi tagħha, biex jiġbru l-informazzjoni meħtieġa li d-dinamika paġni jistgħux sempliċiment jiġu imprevedibbli.
Il-funzjoni ma jkollhomx għalfejn imorru lura string, numru, jew funzjoni oħra. Hija tista 'ritorn full HTML element, u li huwa n-numru meħtieġ ta' elementi, ma handlers tagħhom, avvenimenti tagħhom.
Permezz tat-tqegħid element fuq il-paġna, l-iżviluppatur joħloq funzjonalità ġdida li hija tajba f'termini ta 'tissolva l-problema u jilħqu l-interessi tal-viżitaturi, iżda pjuttost diffiċli f'termini ta' implimentazzjoni.
Peress li l-iżvilupp ta 'tali kompletament funzjonali, faċli li tintilef fil-kodiċi indiġeni, fis-sejħiet funzjoni, fil-mumenti meta tkun iffurmata jew li l-kontenut ta' wieħed jew ieħor tal-paġna. Qabel ma tieħu tali direzzjoni ta 'żvilupp, u mhux ifixklu l-iżen sew kollox.
Dwar id-distribuzzjoni tal-ħsieb
L-iżviluppatur għandu biex jaħsbu fuq il-livell tal-elementi kollha tal-paġna, f'kull każ, u jkollhom preżentazzjoni ċara ta 'kif kollox attwalment jiġri. Huwa diffiċli, imma x-xogħol huwa worth it.
Fil JavaScript, il-funzjoni tista tkun imdewwma sal xi avveniment, u fatturi bħal dawn jistgħu jkunu differenti ħafna, u avvenimenti għandhom tendenza li jinfirxu u nġibu fis-"isfera ta 'viżibilità" mill-proċessuri varji.
F'dan l-eżempju, x'imkien qabel il-funzjoni kienet imsejħa, li bdiet oġġett menu tan-navigazzjoni fajl. Huwa preżunt pejġing, li huwa fit-tieqa biss seba fajls, li jistgħu jitneħħew u pproċessata. Jista 'jiġi mċaqlaq bħala fajl billi tikklikkja fuq il-filliera, u l-vleġġa ċwievet u blokki ta' seba 'ringieli.
F'kull każ għandu funzjoni tagħha stess. Fi kliem ieħor, f'dan l-eżempju sempliċi, inti għandek bżonn biex jiktbu koppja ta 'għexieren ta' karatteristiċi li se jirreaġixxu għal avvenimenti varji, u xi wħud minn dawn il-funzjonijiet se tieħu ħsieb varjetà ta 'għażliet u sitwazzjonijiet li l-avvenimenti ma jappartjenu.
Per eżempju, meta tneħħi l-linja tal-qiegħ irid jiġi spostat irriveda. Dan se jeħtieġ jew jagħmlu għażla ġdida li komuni u ċar riżorsa, jew li għadd linji, l-użu funzjoni javascript fuq il-firxa u biex jinkiseb l-għan eleganti.
L-argumenti u r-riżultati tal-funzjonijiet
JavaScript jippermettilek li tressaq kodiċi għall- "full-dehru" status. Normalment, meta l-argument tal-funzjoni hija l-funzjoni. għażla permessa, il-funzjoni lura funzjoni. JavaScript tikkonsidraha pjuttost bil-kalma.
Dan hu mekkaniżmu tajba, iżda pjuttost ikkumplikata fir-rigward ta 'l-implimentazzjoni. Teknikament permissibbli semantikament jipprovdu "funzjonali" trażmissjoni loġika biss minn iżviluppatur kwalifikata.
Meta funzjoni JavaScript fil-funzjoni - id-dritt, iżda meta l-funzjoni jiġġenera funzjoni, u li ieħor, il-loġika hija pjuttost diffiċli biex isegwu. Fil-fatt, il-kwistjoni mhijiex jekk jiġu applikati l-ħiliet, il-kwistjoni hija li jinkiseb riżultat sigura u korretta.
kura iżviluppatur huwa ċar u sempliċi. Hemm problema, għandek bżonn ta 'soluzzjoni, mhux bug simili "JavaScript żball l-operazzjoni mhux sikur» , Skrin vojt, jew tieqaf magna kollu browser.
Jekk l-argument hija funzjoni, allura l-iżviluppatur li jgħaddi varjabbli bi proprjetajiet speċjali, li ma jkunx numru, mhux string, mhux oġġett. Iżda l-użu ta 'tali argument jista' jwassal għall-fatt li jibdlu l-varjabbli esterni u hija r-riżultat tal-eżekuzzjoni funzjoni. Jiddependi fuq il-bidliet li se jkunu adegwati trasferit.
Eżekuzzjoni ta 'kodiċi ġġenerati
Timplimenta kodiċi eżekuzzjoni ġġenerati fil-kors tax-xogħol kodiċi oħra, huwa possibbli permezz ta ' "eval". Mhuwiex meqjus li tkun soluzzjoni eċċellenti, iżda ħafna drabi ma jistgħux jikkumplikaw il-kodiċi b'funzjonijiet bla bżonn, u biex jillimitaw l-formazzjoni tal-linja trivjali tal-kodiċi JavaScript u sempliċiment esegwit.
F'dan l-eżempju, l-inserzjoni huwa ffurmat stitch fil div operabbli xi informazzjoni. Diva u kontenut ta 'informazzjoni għal numru differenti ta' pożizzjonijiet differenti, peress li tali deċiżjoni f'din is-sitwazzjoni ma tipprovdix għal sitwazzjoni garantit "javascript żball l-operazzjoni mhux sikur» , iżda b'mod sod jagħtu l-effett mixtieq.
Influwenzata JavaScript bidla fundamentali "funzjoni fil-funzjoni"
Jekk inti tista 'tagħmel mingħajr l-frills, huwa aħjar li jużawh. Kollha ta 'dawn l-għażliet huma tajbin. Of course, f'ħafna każijiet, hija l-unika soluzzjoni.
Eżempju klassiku ta 'recursion: l-fattorjali. Huwa diffiċli biżżejjed biex jiktbu algoritmu li se loop, iżda huwa sempliċi ħafna, inti tista timbotta l-valuri pakkett. Fattorjali qed jikbru malajr wisq.
Madankollu, recursion, u l-funzjoni jitlob funzjoni oħra, li jistgħu jagħmlu infurmata callback - affarijiet normali.
Per eżempju, tabella regolari. It-tabella l-oħra tista 'tkun tabella. Jbejtu ma jistax jiġi ristrett. Ikteb għal kull tabella tagħha sett ta 'karatteristiċi - wisq lussu.
Eżempji bħal dawn huma numerużi, u dan kollu se tkun problema reali u urġenti, mhux minħabba l-ipprogrammar. Huwa għalhekk li l-problema tinsab fil-fatt li ebda frills ma jistabbilixxu sistema ta 'funzjonijiet, b'mod iktar preċiż, debugging u tħaddim affidabbli sussegwenti isir kura JavaScript, u Developer.
Similar articles
Trending Now