Programavimas

„Suasmenintas„ JavaScript “: vartotojo nustatytos funkcijos, objektai ir metodai

Kaip moderni programavimo kalba, „JavaScript“ palaiko visišką išplėtimą, leisdamas jums apibrėžti savo funkcijas. Tai leidžia jums sukurti įprastą tvarką, kurią galite naudoti vėl ir vėl. Sutaupote laiko pakartotinai naudodami įprastus „komponentus“, o kurdami savo funkcijas galite išplėsti „JavaScript“ pagrindinę kalbą, kad atitiktų jūsų poreikius. Pagalvokite apie tai kaip apie „asmeninį„ JavaScript ““.

Kadangi „JavaScript“ yra pagrįstas objektais, „JavaScript“ funkciją galima lengvai paversti objektu ir to objekto metodu. Taigi galite ne tik kurti vartotojo apibrėžtus objektus, kad galėtumėte atlikti savo siūlymus, bet ir kurti savo objektus, kurie elgiasi tiksliai taip, kaip norite. Ir jūs galite sukurti metodus, kurie veikia tuos objektus. Nors tai skamba galingai - taip yra, „JavaScript“ funkcijų, objektų ir metodų kūrimo procesas yra labai lengvas.

Pristatome funkcijas

Norėdami sukurti savo „JavaScript“ funkciją, naudokite funkcijos teiginį. Plikų kaulų sintaksė yra:

funkcija vardas (params) { ... funkcijos dalykai ... } 
  • vardas yra unikalus funkcijos pavadinimas. Visi scenarijaus funkcijų pavadinimai turi būti unikalūs.
  • params yra vienas ar daugiau parametrų kintamųjų, kuriuos perduodate funkcijai.
  • funkcijos dalykai yra funkcijos vykdomos instrukcijos. Čia galite įdėti bet ką.

Atkreipkite dėmesį į skliaustų simbolius; šie apibrėžia funkcijų blokasir yra absoliučiai būtini. Petnešos „JavaScript“ nurodo, kur prasideda ir baigiasi funkcija. Taip pat reikalingi skliausteliai aplink parametrus. Įtraukite skliaustus, net jei funkcija nenaudoja parametrų (o daugelis nenaudoja).

Vartotojo nustatytų funkcijų pavadinimai priklauso nuo jūsų, jei naudojate tik raidinius ir skaitmeninius simbolius (leidžiamas ir pabraukimo simbolis _). Funkcijų pavadinimai turi prasidėti raidės simboliu, tačiau pavadinime gali būti skaitmenų.

Aš įsikibau į „JavaScript“ stiliaus pavadinimą didžiosiomis raidėmis - tai yra pradinės mažosios, tada didžiosios raidės, jei funkcijos pavadinimas sudarytas iš sudėtinių žodžių. Pavyzdžiui, „myFuncName“, jūsųFuncNamearba jųFuncName. Funkcijų pavadinimuose skiriamos didžiosios ir mažosios raidės; būtinai naudokite tą pačią didžiąją raidę, kai nurodote funkciją kitur scenarijuje. „JavaScript“ mano „myFunc“ skiriasi nuo Myfunc.

Norint atskirti funkcijas ir kintamuosius, aš norėčiau savo kintamiesiems suteikti pradinius didžiųjų raidžių simbolius, pvz Mano daiktai. Tai iškart išskiria ją iš funkcijos, kurioje būtų naudojama didžiosios raidės Mano daiktai. Žinoma, jūs galite laisvai pasirinkti bet kokią pageidaujamą kapitalizacijos schemą.

Funkcijos apibrėžimas ir naudojimas

Geriausias būdas apibūdinti, kaip ir kodėl funkcija yra parodyti paprastą funkciją. Štai pagrindinė funkcija, rodanti „Sveiki,„ JavaScript “!“ ir yra akivaizdus „Hello World!“ pakilimas. pavyzdys, kurį matote naujoms programavimo kalboms.

funkcija basicFunction () {alert ("Sveiki" JavaScript "!"); } 

Tai tik apibrėžia funkcija. „JavaScript“ su juo nieko nedarys, nebent funkcija scenarijuje bus nurodyta kitur. Tu privalai skambutis funkciją, kad ja būtų galima naudotis. Iškviesti vartotojo apibrėžtą funkciją yra tas pats, kas iškviesti integruotą „JavaScript“ funkciją - scenarijuje nurodykite tik funkcijos pavadinimą. Tai tarnauja kaip funkcijos iškvietimas. Kai „JavaScript“ aptinka funkcijos iškvietimą, jis brūkšteli, kad atliktų bet kokias instrukcijas, esančias toje funkcijoje. Pasibaigus funkcijai, „JavaScript“ grįžta į tašką iškart po funkcijos iškvietimo ir apdoroja likusią scenarijaus dalį.

Norėdami iškviesti aukščiau esančią funkciją, tiesiog įtraukite tekstą basicFunction () - atkreipkite dėmesį į tuščius skliaustus, nes jų reikia. Štai veikiantis „Hello JavaScripters“ programos pavyzdys.

Pagrindinės funkcijos pavyzdinė funkcija basicFunction () {alert ("Sveiki" JavaScript "!"); }

pagrindinė funkcija ();

Puslapis įkeltas.

Naršyklė apdoroja žymos turinį, kai dokumentas įkeliamas. Kai jis susiduria su pagrindinė funkcija () funkcijos iškvietimas, jis akimirkai pristabdo, kad apdorotų funkciją, ir pasirodys įspėjimo langelis. Spustelėkite Gerai ir likusi puslapio dalis bus baigta įkelti.

Funkcijos iškvietimas su įvykių tvarkytuvu

Įprastas funkcijos iškvietimo būdas yra nuorodos į ją įtraukimas į formos mygtuką arba hiperteksto nuorodą. Apdoroti vartotojo apibrėžtą funkciją vartotojui spustelėjus formos mygtuką, ko gero, yra lengviausia. Naudodamiesi „onClick“ įvykių tvarkytuvu norėdami pasakyti „JavaScript“, kad vartotojui spustelėjus mygtuką, reikia apdoroti nurodytą funkciją. Štai pataisyta ankstesnio pavyzdžio versija, rodanti, kaip iškviečiamas „basicFunction“ spustelėjus formos mygtuką.

Pagrindinės funkcijos pavyzdinė funkcija basicFunction () {alert ("Sveiki" JavaScript "!"); }

Spustelėkite, jei norite skambinti.

Atkreipkite dėmesį į „onClick“ sintaksę žymoje. Įvykis, kurį norite apdoroti spustelėjus, yra skambutis pagrindinė funkcija. Šį įvykį supa dvigubos citatos.

Vertės perdavimas funkcijai

„JavaScript“ funkcijos palaiko reikšmių perdavimą - arba parametrus -- jiems. Šios vertės gali būti naudojamos apdorojant funkciją. Pavyzdžiui, užuot įspėjimo laukelyje sakę „Sveiki„ JavaScript “!“ kai tik paskambinsite, galėsite leisti jam pasakyti viską, kas jums patinka. Rodomą tekstą galima perduoti kaip parametrą funkcijai.

Norėdami perduoti parametrą funkcijai, nurodykite kintamojo pavadinimą kaip parametrą funkcijos apibrėžime. Tada tą kintamojo pavadinimą naudosite kitur funkcijoje. Pavyzdžiui:

funkcija basicExample (Tekstas) {alert (Tekstas); } 

Kintamojo pavadinimas yra Tekstas, ir apibrėžiamas kaip funkcijos parametras. Tada tas kintamasis naudojamas kaip tekstas, rodomas įspėjimo laukelyje. Skambindami funkcijai, pateikite tekstą, kurį norite rodyti kaip funkcijos iškvietimo parametrą:

basicExample („Tai sako viską, ko noriu“); 

Kelių reikšmių perdavimas funkcijai

Funkcijai galite perduoti kelis parametrus. Kaip ir naudojant įmontuotas „JavaScript“ funkcijas ir metodus, parametrus atskirkite kableliais:

„multipleParams“ („vienas“, „du“); ... funkcija multiParams (Param1, Param2) {... 

Apibrėždami funkciją su keliais parametrais, įsitikinkite, kad parametrai yra iškviesti ta pačia tvarka. Kitu atveju jūsų „JavaScript“ kodas gali pritaikyti parametrus neteisingiems kintamiesiems, ir jūsų funkcija neveiks tinkamai.

Štai funkcinis kelių parametrų pavyzdys. Tam reikia dviejų parametrų: įvesties eilutės ir skaičiaus vertės. Skaičio vertė nurodo, kiek simbolių kairėje eilutėje norite rodyti įspėjimo laukelyje. Paleidus šį scenarijų, įspėjimo laukelyje rodoma „Tai yra“ - pirmieji septyni įvesties eilutės simboliai.

Visuotinio kintamojo pavyzdys kairysis („Tai yra bandymas“, 7);

function lefty („InString“, „Num“) {var „OutString“ = „InString.substring“ („InString“, „Num“); perspėjimas („OutString“); }

Vertės grąžinimas iš funkcijos

Iki šiol aprašytos funkcijos negrąžina vertės; tai yra, jie daro bet kokią magiją, kurią norite, kad jie padarytų, tada baigkite. Funkcija nepateikia jokios „išvesties“ vertės. Kai kuriomis kitomis kalbomis tokios be grąžinimo funkcijos vadinamos paprogramėmis. Tačiau „JavaScript“ (kaip ir C bei C ++) „funkcijos yra funkcijos“, neatsižvelgiant į tai, ar jos grąžina vertę.

Lengva grąžinti reikšmę iš funkcijos: naudokite grįžti teiginį kartu su verte, kurią norite grąžinti. Tai yra patogu, kai norite, kad jūsų funkcija peržiūrėtų kai kuriuos duomenis ir grąžintų apdorotą rezultatą. Paimkite „kairiosios“ funkciją iš viršaus. Užuot rodę suskirstytą eilutę, galite ją grąžinti į skambinimo funkciją ir grąžinimo vertę naudoti bet kokiu būdu.

Visuotinio kintamojo pavyzdys var Ret = kairysis („Tai yra bandymas“, 7); perspėjimas (Ret);

function lefty („InString“, „Num“) {var „OutString“ = „InString.substring“ („InString“, „Num“); grįžti (OutString); }

Šis scenarijus iš esmės atlieka tą patį, kaip ir ankstesnis pavyzdys, tačiau vietoj to, kad visada būtų rodomas suskirstytas tekstas, funkcija tik grąžina apdorotą vertę. Grąžinimo vertė užfiksuota kintamajame, ir jūs galite laisvai naudoti tą kintamąjį bet kokiu norimu būdu. Aukščiau parodyta Ret kintamasis, naudojamas kartu su įspėjimo laukeliu, tačiau jį galite naudoti ir kitais būdais. Pvz., Galite parašyti „Ret“ kintamojo turinį naudodami dokumentas.rasyti metodas:

document.write (Ret); 

Vietinių kintamųjų apibrėžimas funkcijose

Pagal numatytuosius nustatymus visi „JavaScript“ kintamieji skelbiami juos sukūrusio dokumento visuotiniais. Tai reiškia, kad kai apibrėžiate kintamąjį funkcijoje, jis taip pat yra „matomas“ bet kuriai kitai to dokumento scenarijaus daliai. Pavyzdžiui, atliekant šį visuotinį kintamųjų testą kintamųjų testas yra matomas showVar funkcija, net jei kintamasis yra apibrėžtas loadVar funkcija.

Visuotinio kintamojo pavyzdys

funkcija showVar () {įspėjimas (testas)}

funkcija loadVar () {test = "6"}

loadVar ();

Spustelėkite, jei norite skambinti.

Visuotiniai kintamieji ne visada yra tai, ko norite. Vietoj to norite, kad kintamieji būtų lokalūs funkcijai. Šie kintamieji egzistuoja tik tol, kol „JavaScript“ apdoroja funkciją. Kai jis išeina iš funkcijos, kintamieji prarandami. Be to, vietinis vardo kintamasis traktuojamas kaip atskiras subjektas nuo to paties pavadinimo visuotinio kintamojo. Tokiu būdu jums nereikės jaudintis dėl pakartotinio kintamųjų vardų naudojimo. Funkcijos vietinis kintamasis neturės jokio poveikio visuotiniam kintamajam, naudojamam kitur scenarijuje.

Norėdami paskelbti vietinį kintamąjį, pridėkite kintamąjį raktinį žodį prie kintamojo pavadinimo pradžios funkcijoje. Tai nurodo „JavaScript“, kad kintamąjį norėtumėte padaryti lokaliu šiai funkcijai. Kaip bandymą pakeiskite loadVar aukščiau pateiktą funkciją ir iš naujo įkelkite scenarijų. Spustelėjus mygtuką „JavaScript“ pasakys, kad kintamojo nėra. Taip yra todėl, kad testas yra tik vietinis loadVar funkciją ir neegzistuoja už funkcijos ribų.

funkcija loadVar () {var test = "6"} 

Vienos funkcijos iškvietimas iš kitos funkcijos

Funkcijos viduje esantis kodas elgiasi taip pat, kaip ir bet kur kitur. Tai reiškia, kad galite iškviesti vieną funkciją iš kitos funkcijos. Tai leidžia „susieti“ funkcijas, kad galėtumėte sukurti atskiras funkcijas, kurios kiekviena atlieka tam tikrą užduotį, o tada jas paleisti kartu kaip visišką procesą, vieną po kito. Pavyzdžiui, čia yra funkcija, kuri vadina dar tris mitines funkcijas, kiekviena iš jų pateikia tam tikru būdu pakeistą teksto eilutę.

funkcija run () {var Ret = changeText ("Keisk mane"); perspėjimas (Ret); document.write (Ret); } funkcija changeText (Tekstas) {Tekstas = makeBold (Tekstas); Tekstas = makeItalics (Tekstas); Tekstas = makeBig (Tekstas); grįžti (Tekstas); } funkcija makeBold (InString) {return (InString.bold ()); } funkcija makeItalics (InString) {return (InString.italics ()); } funkcija makeBig (InString) {return (InString.big ()); } 

Objektų su vartotojo apibrėžtomis funkcijomis kūrimas

„JavaScript“ yra pagrįstas objektais: langas yra objektas, nuorodos yra objektai, formos yra objektai, net pats „Netscape“ (ar kita naršyklė) yra objektas. Naudojant objektus, programavimas gali būti lengvesnis ir racionalesnis. Galite išplėsti „JavaScript“ objektų naudojimą patys. Procesas naudoja funkcijas šiek tiek modifikuotai. Tiesą sakant, nustebsite, kaip lengva sukurti savo „JavaScript“ objektus.

Naujo objekto sukūrimas apima du veiksmus:

  • Apibrėžkite objektą vartotojo apibrėžtoje funkcijoje.
  • Naudokite naują raktinį žodį, kad sukurtumėte (arba pagreitintumėte) objektą, iškviesdami objekto funkciją.

Štai paprasčiausio pasaulyje vartotojo apibrėžto „JavaScript“ objekto pavyzdys:

// ši dalis sukuria naują objektą ret = new makeSimpleObject ();

// ši dalis apibrėžia objekto funkciją makeSimpleObject () {}

Aš paskambinau naujam objektui ret; naujam objektui naudokite bet kokį galiojantį kintamojo pavadinimą (kintamiesiems, kuriuose yra objektų, naudoju mažąsias raides, todėl lengviau pasakyti, kad kintamajame yra objektas).

Tą pačią objekto funkciją galite naudoti norėdami sukurti bet kokį skaičių naujų objektų. Pavyzdžiui, šios eilutės sukuria keturis naujus ir atskirus objektus: eenie, meenie, minie ir moe:

eenie = naujas makeSimpleObject (); meenie = new makeSimpleObject (); minie = new makeSimpleObject (); moe = new makeSimpleObject (); 

Tiesą sakant, yra net nuoroda į aukščiau pateiktą „paprasčiausią pasaulyje„ JavaScript “objektą“. Norėdami sukurti objektą su plikais kaulais, nereikia apibrėžti objekto funkcijos. „JavaScript“ palaiko bendrą „Object ()“ objektą, kurį galite naudoti kurdami naujus objektus. Tai daro tą patį, kas nurodyta aukščiau, be aiškios objekto funkcijos:

eenie = naujas objektas (); 

Naujų savybių apibrėžimas jau pagamintiems objektams