Kā moderna programmēšanas valoda JavaScript atbalsta pilnīgu paplašināmību, ļaujot jums definēt savas funkcijas. Tas ļauj jums izveidot kārtību, kuru varat izmantot atkal un atkal. Jūs ietaupāt laiku, atkārtoti izmantojot parastos "komponentus", un, izstrādājot savas funkcijas, varat paplašināt JavaScript bāzes valodu atbilstoši savām vajadzībām. Padomājiet par to kā par "personalizētu JavaScript".
Tā kā JavaScript pamatā ir objekti, JavaScript funkciju var viegli pārveidot par objektu un šī objekta metodi. Tātad ne tikai jūs varat izveidot lietotāja definētus objektus cenu noteikšanai, bet arī izveidot savus objektus, kas rīkojas tieši tā, kā vēlaties. Un jūs varat izveidot metodes, kas iedarbojas uz šiem objektiem. Lai gan tas izklausās spēcīgi - un tā tas ir -, JavaScript, funkciju, objektu un metožu izveides process ir ļoti vienkāršs.
Iepazīstinām ar funkcijām
Izmantojiet funkcijas paziņojumu, lai izveidotu savu JavaScript funkciju. Kailu kaulu sintakse ir:
funkciju nosaukums (params) { ... funkciju sīkumi ... }
- nosaukums ir funkcijas unikālais nosaukums. Visiem skripta funkciju nosaukumiem jābūt unikāliem.
- params ir viens vai vairāki parametru mainīgie, kurus jūs nododat funkcijai.
- funkciju sīkumi ir funkcijas izpildītās instrukcijas. Šeit jūs varat ievietot visvairāk jebko.
Ievērojiet {un} iekavu zīmes; tie definē funkciju bloks, un ir absolūti nepieciešami. Bikšturi norāda JavaScript, kur sākas un beidzas funkcija. Nepieciešamas arī iekavas ap parametriem. Iekļaujiet iekavas arī tad, ja funkcija neizmanto parametrus (un daudzi to neizmanto).
Lietotāju definēto funkciju nosaukumi ir atkarīgs no jums, ja vien izmantojat tikai burtciparu rakstzīmes (atļauts arī pasvītrojums _). Funkciju nosaukumiem jāsākas ar burtu rakstzīmi, taču citur nosaukumā tie var ietvert ciparus.
Esmu ievērojis JavaScript nosaukuma lielo burtu stilu - tas ir, sākotnējos mazos burtus, pēc tam lielos burtus, ja funkcijas nosaukums sastāv no saliktiem vārdiem. Piemēram, myFuncName
, yourFuncName
vai viņuFuncName
. Funkciju nosaukumi ir reģistrjutīgi; noteikti atsaucoties uz funkciju citur skriptā, izmantojiet to pašu lielo burtu lietojumu. JavaScript uzskata myFunc
atšķirīgs no Myfunc
.
Manas lietas
. Tas to uzreiz atšķir no funkcijas, kurā tiktu izmantots lielo burtu lietojums Manas lietas
. Protams, jūs varat brīvi izmantot jebkuru vēlamo kapitalizācijas shēmu.Funkcijas definēšana un izmantošana
Labākais veids, kā aprakstīt, kā un kāpēc funkcija, ir parādīt vienkāršu funkciju darbībā. Šeit ir pamatfunkcija, kas parāda "Sveiki, JavaScripters!" un ir acīmredzams pacelšanās pasākumā "Sveika pasaule!" piemērs, kuru redzat jaunām programmēšanas valodām.
funkcija basicFunction () {alert ("Sveiki JavaScripters!"); }
Tas tikai definē funkciju. JavaScript ar to neko nedarīs, ja vien skriptā funkcija nav norādīta citur. Tev vajag zvanu funkciju, lai to izmantotu. Izsaukt lietotāja definētu funkciju ir tas pats, kas izsaukt iebūvēto JavaScript funkciju - jūs vienkārši norādiet funkcijas nosaukumu savā skriptā. Tas kalpo kā funkcijas izsaukums. Kad JavaScript saskaras ar funkcijas izsaukumu, tas tiek pārtraukts, lai izpildītu visus norādījumus, kas ir šajā funkcijā. Kad funkcija ir beigusies, JavaScript tūlīt pēc funkcijas izsaukuma atgriežas punktā un apstrādā atlikušo skripta daļu.
Lai izsauktu iepriekš minēto funkciju, vienkārši iekļaujiet tekstu basicFunction () - ņemiet vērā tukšās iekavas, jo tās ir nepieciešamas. Šeit ir Hello JavaScripters programmas piemērs.
Pamata funkcijas piemērs Funkcija basicFunction () {alert ("Sveiki JavaScript lietotāji!"); }
basicFunction ();
Lapa ir ielādēta.
Pārlūks apstrādā taga saturu dokumenta ielādes laikā. Kad tā sastopas ar basicFunction ()
funkcijas izsaukums, tas īslaicīgi apstājas, lai apstrādātu funkciju, un tiek parādīts brīdinājuma lodziņš. Noklikšķiniet uz Labi, un pārējā lapas daļa tiks ielādēta.
Funkcijas izsaukšana ar notikumu apstrādātāju
Izplatīts funkcijas izsaukšanas veids ir atsauces uz to iekļaušana formas pogā vai hiperteksta saitē. Varbūt visvieglāk ir apstrādāt lietotāja definētu funkciju, kad lietotājs noklikšķina uz formas pogas. Jūs izmantojat onClick notikumu apdarinātāju, lai JavaScript norādītu, ka, kad lietotājs noklikšķina uz pogas, norādītā funkcija ir jāapstrādā. Šeit ir iepriekšējā piemēra pārskatītā versija, kurā parādīts, kā tiek izsaukts pamatfunkcija, noklikšķinot uz formas pogas.
Pamata funkcijas piemērs Funkcija basicFunction () {alert ("Sveiki JavaScript lietotāji!"); }
Noklikšķiniet, lai zvanītu.
Ievērojiet tagā onClick sintaksi. Notikums, kuru vēlaties apstrādāt ar klikšķi, ir zvans uz pamata funkcija
. Šo notikumu ieskauj dubultās pēdiņas.
Vērtības nodošana funkcijai
JavaScript funkcijas atbalsta vērtību nodošanu - vai parametriem -- viņiem. Šīs vērtības var izmantot apstrādei funkcijas ietvaros. Piemēram, tā vietā, lai brīdinājumu lodziņā būtu teikts "Sveiki JavaScript lietotāji!" ikreiz, kad to saucat, jūs varat lūgt to pateikt visu, kas jums patīk. Parādāmo tekstu var pārsūtīt kā parametru funkcijai.
Lai nodotu parametru funkcijai, funkcijas definīcijā kā parametru norādiet mainīgā nosaukumu. Pēc tam šo mainīgā nosaukumu izmantojat citur funkcijā. Piemēram:
funkcija basicExample (Teksts) {alert (Teksts); }
Mainīgā nosaukums ir Teksts
, un tiek definēts kā funkcijas parametrs. Pēc tam šo mainīgo izmanto kā tekstu, lai parādītu brīdinājuma lodziņā. Zvanot uz funkciju, norādiet tekstu, kuru vēlaties parādīt kā funkcijas izsaukuma parametru:
basicExample ("Tas saka visu, ko es gribu");
Vairāku vērtību nodošana funkcijai
Funkcijai varat nodot vairākus parametrus. Tāpat kā ar iebūvētām JavaScript funkcijām un metodēm, parametrus atdaliet ar komatiem:
multipleParams ("viens", "divi"); ... funkcija multipleParams (Param1, Param2) {...
Definējot funkciju ar vairākiem parametriem, pārliecinieties, ka parametru saraksti funkciju izsaukumā ir norādīti vienā un tajā pašā secībā. Pretējā gadījumā jūsu JavaScript kods var piemērot parametrus nepareizajiem mainīgajiem, un jūsu funkcija nedarbosies pareizi.
Šeit ir funkcionējošs funkcijas piemērs ar vairākiem parametriem. Tam nepieciešami divi parametri: ievades virkne un skaitļa vērtība. Skaitļa vērtība norāda, cik rakstzīmju virknes kreisajā pusē vēlaties parādīt trauksmes lodziņā. Palaižot šo skriptu, brīdinājumu lodziņā tiek parādīts “Tas ir” - pirmās septiņas ievades virknes rakstzīmes.
Vispārīgā mainīgā piemērs kreisais ("Šis ir tests", 7);
funkcija kreisā (InString, Num) {var OutString = InString.substring (InString, Num); trauksme (OutString); }
Atgriežot vērtību no funkcijas
Līdz šim aprakstītās funkcijas neatgriež vērtību; tas ir, viņi dara visu burvību, kuru vēlaties, lai viņi to dara, pēc tam beidzas. Funkcija nenodrošina "izejas" vērtību. Dažās citās valodās šādas bezatgriešanās funkcijas sauc par apakšprogrammām. Tomēr JavaScript (piemēram, C un C ++) "funkcijas ir funkcijas" neatkarīgi no tā, vai tās atgriež vērtību.
Funkcijas vērtību ir viegli atgriezt: izmantojiet atgriešanās paziņojumu kopā ar vērtību, kuru vēlaties atgriezt. Tas ir ērti, ja vēlaties, lai jūsu funkcija pārbaudītu dažus datus un atgrieztu apstrādāto rezultātu. Paņemiet funkciju "kreisais" no augšas. Tā vietā, lai parādītu sasmalcinātu virkni, varat to atgriezt izsaukšanas funkcijā un izmantot atgriešanās vērtību kā vēlaties.
Globālā mainīgā piemērs var Ret = kreisais ("Šis ir tests", 7); trauksme (Ret);
funkcija kreisā (InString, Num) {var OutString = InString.substring (InString, Num); atgriešanās (OutString); }
Šis skripts būtībā ir tāds pats kā iepriekšējais piemērs, taču tā vietā, lai vienmēr parādītu sadalīto tekstu, funkcija tikai atgriež apstrādāto vērtību. Atgriešanās vērtība tiek uztverta mainīgajā, un jūs varat brīvi izmantot šo mainīgo kā vēlaties. Iepriekš parādīts Ret mainīgais, ko lieto kopā ar brīdinājumu lodziņu, taču to var izmantot arī citos veidos. Piemēram, mainīgā Ret saturu varat uzrakstīt, izmantojot document.write
metode:
document.write (Ret);
Vietējo mainīgo definēšana funkciju ietvaros
Pēc noklusējuma visi JavaScript mainīgie tiek deklarēti kā globāli dokumentam, kas tos izveidoja. Tas nozīmē, ka, definējot mainīgo funkcijā, tas ir "redzams" arī jebkurai citai šī dokumenta skripta daļai. Piemēram, nākamajā globālā mainīgā testā mainīgais tests ir redzams showVar
funkcija, pat ja mainīgais ir definēts loadVar
funkciju.
Globālā mainīgā piemērs
funkcija showVar () {brīdinājums (tests)}
funkcija loadVar () {test = "6"}
loadVar ();
Noklikšķiniet, lai zvanītu.
Globālie mainīgie ne vienmēr ir tie, kurus vēlaties. Tā vietā vēlaties mainīgos, kas funkcijai ir lokāli. Šie mainīgie pastāv tikai tik ilgi, kamēr JavaScript apstrādā funkciju. Kad tas iziet no funkcijas, mainīgie tiek zaudēti. Turklāt uz nosaukuma lokālo mainīgo attiecas atsevišķa vienība no tā paša nosaukuma globālā mainīgā. Tādā veidā jums nav jāuztraucas par mainīgo nosaukumu atkārtotu izmantošanu. Funkcijas vietējais mainīgais neietekmēs globālo mainīgo, kas tiek izmantots citur skriptā.
Lai deklarētu lokālo mainīgo, pievienojiet mainīgā vārda funkcijas mainīgā nosaukuma sākumam. Tas norāda JavaScript, ka mainīgo vēlaties padarīt lokālu šai funkcijai. Kā testu mainiet loadVar
funkciju, lai atkārtoti ielādētu skriptu. Noklikšķinot uz pogas, JavaScript norāda, ka mainīgais neeksistē. Tas ir tāpēc, ka tests ir tikai vietējais loadVar
un nepastāv ārpus funkcijas.
funkcija loadVar () {var test = "6"}
Vienu funkciju izsaukšana no citas funkcijas
Funkcijas iekšējais kods darbojas tāpat kā kods jebkur citur. Tas nozīmē, ka jūs varat izsaukt vienu funkciju no citas funkcijas. Tas ļauj jums "ligzdot" funkcijas, lai jūs varētu izveidot atsevišķas funkcijas, kuras katra veic noteiktu uzdevumu, un pēc tam tās palaist kopā kā pilnīgu procesu uzreiz pēc otra. Piemēram, šeit ir funkcija, kas izsauc trīs citas mītiskas funkcijas, no kurām katra atgriež kaut kādā veidā mainītu teksta virkni.
funkcija palaist () {var Ret = changeText ("Mainīt mani"); trauksme (Ret); document.write (Ret); } function changeText (Teksts) {Teksts = makeBold (Teksts); Teksts = makeItalics (Teksts); Teksts = makeBig (Teksts); atgriešanās (Teksts); } funkcija makeBold (InString) {return (InString.bold ()); } funkcija makeItalics (InString) {return (InString.italics ()); } funkcija makeBig (InString) {return (InString.big ()); }
Objektu izveide ar lietotāja definētām funkcijām
JavaScript pamatā ir objekti: logs ir objekts, saites ir objekti, formas ir objekti, pat pats Netscape (vai cits pārlūks) ir objekts. Objektu izmantošana var atvieglot un vienkāršot programmēšanu. Varat paplašināt JavaScript objektu izmantošanu, izveidojot pats savu. Procesā funkcijas tiek izmantotas nedaudz modificētā veidā. Patiesībā jūs būsiet pārsteigts, cik viegli ir izveidot savus JavaScript objektus.
Jauna objekta izgatavošana prasa divas darbības:
- Definējiet objektu lietotāja definētā funkcijā.
- Izmantojiet jauno atslēgvārdu, lai izveidotu objektu (vai to izveidotu momentā), izsaucot objekta funkciju.
Šeit ir pasaules vienkāršākā lietotāja definētā JavaScript objekta piemērs:
// šī daļa izveido jaunu objektu ret = new makeSimpleObject ();
// šī daļa nosaka objekta funkciju makeSimpleObject () {}
Esmu piezvanījis jaunajam objektam ret
; jaunajam objektam izmantojiet jebkuru derīgu mainīgā nosaukumu (mainīgajiem, kas satur objektus, izmantoju mazos burtus, tāpēc ir vieglāk pateikt, ka mainīgajā ir objekts).
Jūs varat izmantot to pašu objekta funkciju, lai izveidotu jebkuru jaunu objektu skaitu. Piemēram, šīs rindas izveido četrus jaunus un atsevišķus objektus: eenie, meenie, minie un moe:
eenie = new makeSimpleObject (); meenie = new makeSimpleObject (); minie = new makeSimpleObject (); moe = new makeSimpleObject ();
Patiesībā ir pat īsceļš uz iepriekš minēto "pasaules vienkāršāko JavaScript objektu". Lai izveidotu kailu objektu, jums nav jādefinē objekta funkcija. JavaScript atbalsta vispārēju Object () objektu, kuru varat izmantot jaunu objektu veidošanai. Tālāk ir izdarīts tas pats, kas iepriekš, bez skaidras objekta funkcijas:
eenie = jauns objekts ();
Jaunu īpašību noteikšana jau izgatavotiem objektiem