ՀամակարգիչներԾրագրավորում

JavaScript- ը: գործառույթը գործառույթը. Ծրագրավորման լեզու JS

Ideas դինամիկ բովանդակության ձեւավորել վեբ-ռեսուրսները դարձել է նորմ: Ստատիկ էջեր եւ կաղապարներ Վեբ դիզայն վերջապես ավարտել են իրենց առաքելությունը:

Սակայն, ժամանակակից վեբ-ռեսուրս չունի ներկայացված լինելու է մի շարք էջերի գեներացվել է սերվերի եւ թարմացնել զննարկիչը (JS + AJAX):

Web- ի վրա հիմնված գերեզմանոցը պահին ժամանումը այցելուի կարող է լինել մի քանի վերնագրեր համար ռեկորդային, ոմանք տեքստ «ղեկավար», մի քանի տող կոդ է «մարմնի» եւ բոլոր. Իսկ մնացած «հասկանալ» - ի գործընթացում այցելու - դա իդեալական կայք, կամ ձգտում են լինել մեկը.

Տեղի նկարագրությունը եւ բնույթը գործառույթների

опыт, наработаный многими десятилетиями. JavaScript - դա փորձառություն narabotany տասնամյակներ: Այն ունի զգալի զարգացման պատմությունը, ժամանակակից որակավորված թիմային ստեղծողները ծրագրավորողներ: Լեզուն լավ մտածել, հուսալի, գեղեցիկ եւ հնարավորություն է տալիս իրական հնարավորություն է ծրագրավորողներին գրելու կոդը համար պատշաճ եւ ինքնակատարելագործման:

Հայեցակարգը, որը ալգորիթմի մի ֆունկցիա Մականուն գոյություն չունի սկզբունքորեն: Իհարկե, կարող է մշակողի ամենուրեք էջի մտցրեք script կոդը դնելու մեջ, եւ դա պետք է իրականացնենք: страницы? Բայց ինչ իմաստ է օրենսգրքի, որը գործարկված է միայն մեկ անգամ, երբ բեռնում (վերաբեռնումը) էջը,? Արդյոք դա հնարավոր է սահմանել սկզբնական արժեքները, թե ինչ են աննշան փոփոխականների.

Script - սա տեղ է ճիշտ նկարագրությունը փոփոխականների եւ գործառույթների, այլ ոչ թե մի լավ կտոր օրենսգրքի գրված իր սեփական հանուն. Դա մի շարք գործառույթների էական եւ կարեւոր է, թերեւս, նրանց փոխադարձ կապը, սակայն ավելի հաճախ դա այլ է. Տեղ նկարագրությունը գործառույթը եւ տեղը, իր դիմումի չէ նույն բանը:

Դա այն չէ, անհրաժեշտ է, որ գործում է զանգահարել մեկ այլ գործառույթը անմիջականորեն, բայց դա կարող է անել անուղղակիորեն ձեւավորման միջոցով դինամիկ օրենսգրքի: Մի այցելու որոշում է ընդունում սույն օրենսգրքի եւ աշխատում է միանգամայն տարբեր համակարգի գործառույթները:

ֆունկցիոնալ դինամիկան

Ֆունկցիոնալ դինամիկան - ն ոչ միայն եւ ոչ այնքան handlers հանձնարարված է էջում տարրերի գործառույթներն են, որոնք կազմում են տարրեր էջի, եւ անմիջական handlers, նույնպես, կարող է փոխվել:

Որ ակցիան տեղի է ունենում էջում, կախված տարրերի եւ այցելուների վարքի վրա այն. Շարժումը մկնիկը, ստեղնաշարով, կոճակները, կտտացնում, իրադարձությունների, իրերի եւ այլ հանգամանքների հանգեցնել մեկնարկին անհրաժեշտ գործառույթների.

Originally չկա հետեւողականություն եւ չկա ոչ մի զուգահեռ: Կա համարժեք արձագանք է վեբ-ռեսուրսների իրադարձությունների. Թե ինչպես արագ JavaScript- ը կատարում է որոշակի գործառույթ, դա կախված է բազմաթիվ տեխնիկական (համակարգչի, կապի գծերի) եւ իմաստային (տրամաբանական ալգորիթմի, առարկայի ոլորտում, ինչը նշանակում է, խնդիրը) գործոնները:

Ըստ էության կարելի է պնդել, որ ինչ - որ բան շատ է աշխատել զուգահեռ, սակայն ինչ-որ բան կդառնա հետո ինչ-որ բան, բայց իմաստը սա հատուկ չէ: Դա կարեւոր է, որ JavaScript- ը գործառույթը, դա հնարավորություն է ստեղծել համարժեք պատասխան գործողությունների այցելու:

Այս նոր մտածողություն նախագծային: բաշխվում վերամշակման խորքերը մեկ բրաուզերում.

The շարահյուսություն համար փոփոխականների եւ գործառույթների

JavaScript-փոփոխականներ են, տեղադրված է կտրոնը «սցենարի», իսկ մարմնի գործառույթը: Գործառույթները սահմանվում են նույն կերպ: Հատուկ իմաստ գրել ներսում գործառույթը կա եւս մեկ ֆունկցիա, բայց դա կարող է անհրաժեշտ լինել տարբեր պատճառներով, եւ դա միանգամայն խելամիտ.

Խաղային Description գործառույթը, ընդհանուր առմամբ, սկսվում է Հիմնաբառը «ֆունկցիայի», որին հաջորդում է նրա անունով, իսկ ցանկը փաստարկներից փակագծերում, բաժանելով դրանք ստորակետերով, իսկ գործառույթը մարմինը braces.

Այս օրինակում, երկու գործառույթները նկարագրված են, որ ապահովում են AJAX-փոխանակմանը Էջ եւ սերվերի. Մասամբ scXHR նկարագրված է վերը, քանի որ առկա է թե InitXML, եւ ներսում WaitReplySC:

Որի գործառույթը Անունը եւ պարամետր "ֆունկցիան»

Կան արդեն ներկայացրել է asynchronous տարբերակը, երբ Javascript- ին ֆունկցիան գործառույթը կոչվում հետո սերվերի պատասխան: Այսպիսով, ստանալով պատասխանի է սերվերի, WaitReplySC accesses էջը կտրոնը, լրացնում են ստացված տեղեկատվության եւ առաջացնում այլ գործառույթներ, որը կարող է նաեւ նախաձեռնելու հաջորդ դիմում է սերվերի.

Այստեղ դա նաեւ կարեւոր է նշել, որ WaitReplySC մի գործառույթ. scXHR.onreadystatechange = WaitReplySC она передается как параметр. Բայց գծի scXHR.onreadystatechange = WaitReplySC այն ընդունվել է որպես պարամետր: Այս ընդհանուր կանոնը փոխանցման ֆունկցիան այլ գործառույթներ, ինչպիսիք են պարամետրերի. Սրածայր փակագծերում եւ տվեց նրանց իր պարամետր (ներ) - գործառույթը կլինի մահապատժի անմիջապես. Narrated կողմից միայն անունով, նաեւ, որ ինչ. Զանգահարեք գործառույթը կդարձնի, ով ստացել է իր անունը:

Բավարար իրականացվում միջոցով AJAX, թույլ է տալիս Ձեզ զանգահարել է JavaScript գործառույթը միջոցով ստացված տվյալների սերվերի. Ի դեպ, ուղարկելով դիմում է սերվերի, մեկ կամ մյուս առանձնահատկությունը չի կարող բնավ «իմանալ», որը գործում է նա դառնում, եւ ինչ տեղեկատվություն:

Դուրս գործառույթը եւ դրա արդյունքը

Մարմինը ֆունկցիայի, դուք կարող եք գրել ցանկացած լեզվով օպերատորների, ովքեր, ըստ էության, դրա համար է նախատեսված: Ներսում հատկանիշներ են փոփոխականները հայտարարել է ներսում եւ նրա սահմաններից դուրս, բայց ոչ նրանք, որոնք նկարագրված են այլ գործառույթներ:

Եթե դուք ուզում եք, որ ֆունկցիան է վերադառնալ արդյունքի, դուք կարող եք օգտագործել Javascript- ին ետդարձի հայտարարություն: վերադարձը. Մարմինը գործառույթը կարող է լինել բավարար թվով վերադառնալու հայտարարությունները: Դա այն չէ, անհրաժեշտ է, որ բոլորն էլ կվերադառնա արդյունքը նույն տեսակի.

Որպես կանոն, մշակողները են բացվեց ատենակալների դատարանը այս հնարավորությունից եւ, կախված իրավիճակից, որոշել է դուրս գալ ֆունկցիայի, ինչպես արագ, որքան հնարավոր է.

Դա ոչ թե անհրաժեշտ է առաջադրվել ամբողջ ալգորիթմի գործառույթների, երբ դուք կարող եք դուրս գալ ավելի վաղ:

գործառույթը փաստարկները

Փաստարկներն են անցել դեպի ֆունկցիայի ցուցակում, առանձնացված ստորակետներով, կցվում են փակագծերի, եւ պարզապես հետո իր անունով: Այն փաստարկները օգտագործվում է փոփոխական անուններ, բայց դուք կարող եք անցնել արժեքները ուղղակիորեն. Է անցնել է JavaScript գործառույթ է մի գործառույթ, դուք պարզապես պետք է հստակեցնել իր անունը, առանց փակագծերում:

Ներսում գործառույթը հասանելի է փոփոխական փաստարկները, որը ունի երկարությունը գույքը: Դուք կարող եք դիմել ցանկացած փաստարկ ֆունկցիայի միջոցով փաստարկների [0], փաստարկները [1], ..., ինչպես նաեւ վերջին փաստարկների [arguments.length-1]:

Փոխելով գործառույթը փաստարկի, իրոք ներսում գործառույթը, սակայն ոչ թե դրա սահմաններից դուրս: Որպեսզի փոխել ինչ-որ բան դուրս ֆունկցիայի, որ օպերատորը պետք է օգտագործել Javascript- ին վերադարձը, որի միջոցով անցնում է պահանջվող արժեք է դրսից:

Այն բանից հետո, գործառույթը ավարտվելուն, այդ ամենը կապված է դրա իրականացման, կլինի քանդել. Ընթացքում կատարման գործառույթը կարող է փոխել արտաքին փոփոխականները, բացառությամբ նրանց, որոնք նկարագրված են այլ գործառույթներ, այդ թվում նաեւ ներքին.

Մենք ունենք փաստարկներ Callee գույքային, որը նախատեսված է զանգահարել մի գործառույթ, որը կատարվում է տվյալ ժամանակ. Եթե պատճառը ինքն է, JavaScript- ը տարբերակը գործում ֆունկցիա չի իրականացնելու ռեկուրսիայից:

օգտագործելով ֆունկցիաները

Հիմնական մտահոգությունն այն գործառույթների - Ծառայել միջոցառման զննարկիչը. Որպեսզի դա անել, այս գրեթե ամեն հատկորոշիչը ունի կարողությունը նշեք միջոցառման անունը եւ գործառույթը իր արտադրության. Դուք կարող եք նշեք բազմաթիվ միջոցառումներ, սակայն յուրաքանչյուր միջոցառում նշված միայն մեկ գործառույթ:

Մեկ գործառույթ կարող են կարգավորել բազմաթիվ Էջի տարրեր եւ մի քանի միջոցառումներ: Միջոցով «Այս» տարբերակը, դուք կարող եք փոխանցել տեղեկատվական գործառույթը, որտեղ այն կոչվում է.

Որ դասական Օգտագործումը JS-գործառույթների - միջոցառման handlers վրա տարրերի. Այս օրինակում scfWecomeGo () ֆունկցիան կամ scfWelcomeCancel (), որը կոչվում է մուտքային / ելքային ձեւով այցելուի, եւ երբ ընտրելով օպերացիոն ռեժիմ scfMenuItemClick (այս):

Վերջինի դեպքում, պարամետր անցել է «այս», որը թույլ է տալիս Ձեզ հրաշքով իմանալ, թե ինչ է երգչուհուն էր կոչվում: Իրականում, JavaScript - ը, որպեսզի որակապես փոխպատվաստված է DOM, եւ դա այնքան հարմար թույլ է տալիս Ձեզ նավարկելու իր տարրեր, հավաքել անհրաժեշտ տեղեկություններ, որ էջերը դինամիկան կարող եք պարզապես լինել անկանխատեսելի:

Որ գործառույթը չի ունենա վերադառնալու լարային, համարը, կամ այլ գործառույթը. Այն կարող է վերադառնալ մի ամբողջական HTML տարր, եւ որը հանդիսանում է անհրաժեշտ թվով տարրերի, ինչպես նաեւ իրենց handlers, միջոցառումների:

Դնելով տարր էջում, որ ծրագրավորողը ստեղծում է նոր ֆունկցիոնալությունը, որը լավ է լուծելու տեսանկյունից խնդիրը, եւ բխում այցելուների, բայց բավականին դժվար առումով իրականացման:

Քանի որ նման զարգացումը լիովին ֆունկցիոնալ, հեշտ է կորչում է հայրենի կոդը, ի ֆունկցիայի զանգերի, պահերին, երբ ձեւավորվել, կամ, որ բովանդակությունը մեկը կամ մյուսը էջում: Մինչեւ այդպիսի զարգացման ուղղությամբ, չի խանգարել է նաեւ կշռել ամեն ինչ:

Բաշխման մտածողության

Մշակողի է մտածել մակարդակով բոլոր տարրերի էջում, բոլոր իրադարձությունները, եւ ունեն հստակ շնորհանդեսը, ինչպես ամեն ինչ, ըստ էության, տեղի է ունենում: Դժվար է, բայց աշխատանքը արժե այն.

JavaScript, այդ գործառույթը կարող է հետաձգվել մինչեւ ինչ-որ իրադարձության, եւ այնպիսի հատկանիշներ կարող են լինել շատերը, եւ իրադարձությունները միտում ունեն տարածել եւ ստանալու մեջ «ոլորտում տեսանելիության« տարբեր պրոցեսորների.

Այս օրինակում, ինչ-որ տեղ, մինչեւ որ ֆունկցիան կոչվում էր, որը նախաձեռնել է ապրանքն ֆայլի նավիգացիոն ցանկը: Ենթադրվում է, paging, որ գտնվում է պատուհանից ընդամենը յոթ ֆայլերը, որոնք կարող են հանվել եւ վերամշակված. Կարող է տեղափոխվել որպես ֆայլ սեղմելով վրա անընդմեջ, եւ նետը բանալիների եւ բլոկների յոթ շարքերում:

Յուրաքանչյուր դեպքում ունի իր սեփական գործառույթը: Այլ կերպ ասած, այս պարզ օրինակ, դուք պետք է գրել մի քանի տասնյակ առանձնահատկություններ, որոնք կարձագանքեն տարբեր միջոցառումների, եւ որոշ գործառույթների կլինի կարգավորել մի շարք տարբերակներ եւ իրավիճակների, որ իրադարձությունները չէին պատկանում:

Օրինակ, երբ հանելուց շահը պետք է տեղահանվել upwardly: Սա կպահանջի կամ կատարել նոր ընտրություն, որը սովորական եւ հստակ ռեսուրսների, կամ հաշվել տողերը, օգտագործել javascript գործառույթը զանգված եւ հասնել նպատակին էլեգանտ.

Այն փաստարկները եւ արդյունքները գործառույթների

JavaScript- ը թույլ է տալիս Ձեզ բերել կոդը է «լիարժեք դիմագծերով» կարգավիճակը: Սովորաբար, երբ այն փաստարկը, որ գործառույթը գործառույթը: Թույլատրվում տարբերակ, որ ֆունկցիան վերադարձնում է ֆունկցիան: JavaScript- ը վերցնում է այն բավականին հանգիստ:

Սա լավ մեխանիզմ է, բայց բավականին բարդ առնչությամբ իրականացմանը: Տեխնիկապես թույլատրելի սեմանտիկորեն տրամադրել «ֆունկցիոնալ» տրամաբանությունը փոխանցման միայն որակյալ մշակողի.

Երբ մի JavaScript- ը գործառույթ է մի գործառույթ, - բոլորը ճիշտ է, բայց այն ժամանակ, երբ ֆունկցիան առաջացնում մի գործառույթ, եւ որ մեկ այլ, այդ տրամաբանությունը բավականին դժվար է հետեւել: Ի դեպ, հարցն այն է, թե արդյոք պետք է կիրառել այն հմտությունները, որ հարցը պետք է ձեռք բերել անվտանգ եւ ճիշտ արդյունք:

Developer խնամք պարզ է ու հասարակ: Կա մի խնդիր, դուք պետք է լուծում, ոչ թե սխալ է նման «JavaScript սխալի գործողությունը անապահով» , դատարկ էկրան, կամ դադարեցնել բոլոր բրաուզերի շարժիչը:

Եթե փաստարկը մի ֆունկցիա, ապա ծրագրավորողը է անցնել փոփոխականի հատուկ հատկություններով, որ դա ոչ թե մի շարք, ոչ մի տողը, ոչ թե օբյեկտ: Բայց օգտագործումը որպես փաստարկ կարող է հանգեցնել այն բանին, որ փոխել արտաքին փոփոխականները եւ արդյունք է ֆունկցիայի կատարման. Կախված այն փոփոխությունների մասին, որոնք կլինեն համարժեք փոխանցվում:

Կատարումը առաջացած կոդը

Իրականացնել կատարման կոդը գեներացվել է ընթացքում աշխատանքային այլ օրենսգրքի, դա հնարավոր միջոցներով «Eval»: Այն չի համարվում հիանալի լուծում, բայց հաճախ չի կարող բարդացնել կոդը ավելորդ գործառույթների, եւ սահմանափակել ձեւավորմանը չնչին գծի JavaScript կոդը եւ պարզապես կատարել այն:

Այս օրինակում, ներդիրը, որը ձեւավորվում stitch մեջ operable div որոշ տեղեկություններ. Diva եւ տեղեկատվական բովանդակության համար տարբեր թվով տարբեր դիրքերից, քանի որ նման որոշումը այս իրավիճակում չի տրամադրում երաշխավորված իրավիճակը «javascript սխալ Գործողությունը անապահով» , բայց ամուր տալ ցանկալի արդյունքի:

Նրբերանգ է Javascript- ին պարադիգմը հերթափոխի «գործում է հետեւյալ ֆունկցիայի մարմնից«

Եթե դուք կարող եք անել առանց երեվակայել, որ ավելի լավ է օգտագործել այն: Այդ բոլոր տարբերակներից են, լավ: Իհարկե, շատ դեպքերում, դա միակ լուծումը:

Դասական օրինակ է ռեկուրսիա, որ factorial. Դա բավական դժվար է գրել մի ալգորիթմ, որը հանգույց, բայց դա շատ պարզ է, դուք կարող եք հրում ծրարը արժեքները: Factorial աճում է շատ արագ:

Սակայն, ռեկուրսիա, եւ գործառույթը կոչ է անում եւս մեկ գործառույթ, որը կարող է տեղեկացված հիշելու նորմալ բաներ.

Օրինակ, հերթական սեղան. Իսկ մյուս սեղանի կարող է լինել մի սեղան. Nesting չի կարող սահմանափակվել: Գրել յուրաքանչյուր սեղանի իր սեփական շարք առանձնահատկություններ - չափից շատ ճոխությունը:

Նման օրինակները բազմաթիվ են, եւ այս ամենը կլինի իրական եւ խնդիրն է, ոչ թե այն պատճառով, որ ծրագրավորման. Դա է պատճառը, որ խնդիրը կայանում է նրանում, որ ոչ - երեվակայել չեն ստեղծել այնպիսի համակարգ, գործառույթների, ավելի ճիշտ, դրա կարգաբերում եւ հետագա հուսալի շահագործման դառնում է Javascript- ին խնամք, եւ Developer:

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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