VBScript funkcije i procedure s primjerom
⚡ Pametni sažetak
VBScript funkcije i procedure organiziraju kod u blokove za višekratnu upotrebu. Sub procedura izvršava naredbe bez vraćanja vrijednosti, dok Function procedura vraća vrijednost dodjeljivanjem iste nazivu funkcije, a argumenti se prenose pomoću ByRef ili ByVal.
VBScript procedure
VBScript procedure uglavnom se koriste za organizaciju i ponovnu upotrebu koda. Do sada smo koristili jednostavne primjere jer je ovdje svrha učenje VBScripta. Ali u scenariju stvarnog svijeta kod nije tako jednostavan. Kada pokušate implementirati nešto što je korisno, kod može postati složeniji. Mogu postojati stotine redaka koji se protežu na mnogo stranica.
Ako kôd ne organizirate ispravno, cijeli proces kodiranja, otklanjanja pogrešaka i upravljanja kodom postat će vrlo složen. Dakle, trebali biste pažljivo organizirati ili modularizirati kôd tako da vašim kodom postane lako upravljati.
Štoviše, pretpostavimo da imate skup izjava koje izvode određenu radnju. Želite da se ista radnja ponovi nekoliko puta. Zašto biste onda trebali pisati isti kod uvijek iznova? Upotrebom učinkovitih tehnika svoj kod možete učiniti višekratnim. To će pomoći razvojnim programerima da lijepo organiziraju kod, a testerima da lako identificiraju greške. Ukratko, modularizacija koda i ponovna upotreba vrlo su važni kako bi kod bio moćniji, pouzdaniji i lakši za održavanje. Evo postupaka u sliku.
Vrste procedura u VBScriptu
Procedura je blok koda koji idealno obavlja jednu funkciju. Blok koda koji obrađuje unos ili rukuje datotekom dobar je primjer funkcije. Postoje dvije vrste postupaka u VBScript.
- Potprocedura: Potprocedura ne vraća vrijednost.
- Funkcijski postupak: Funkcijski postupak koristi se ako želite vratiti vrijednost.
Podpostupci
Ako želite izvršiti niz naredbi bez vraćanja bilo kakve vrijednosti, tada možete koristiti podprocedure.
Podprocedure počinju i završavaju s Sub i End Sub izjavama. Podprocedure mogu uzeti argumente, ali ne mogu vratiti vrijednost. Potpostupci mogu ali ne moraju primati ulazne podatke.
Sub outputMessage() document.write("Welcome") End Sub
Samo pisanje ovog koda neće ništa ispisati. Ovdje ste stvorili podproceduru pod nazivom outputMessage. Zatim, trebate ga nazvati.
poziv outputMessage()
Kombinirajte oba ova skupa kodova unutra tag like this.
<script type="text/vbscript"> Sub outputMessage() document.write("Welcome") End Sub call outputMessage() </script>
Izlaz ovog koda bit će
VBScript funkcije
Ako želite izvršiti niz naredbi i vratiti vrijednost, tada trebate koristiti funkcijske procedure, poznate kao funkcija.
Funkcijski postupci počinju i završavaju naredbama Function i End Function.
Funkcijski postupak može, ali i ne mora primiti unos.
Funkcijski postupci vraćaju vrijednost dodjeljivanjem vrijednosti njegovom imenu.
<script type="text/vbscript"> Function findArea(radius) const pi=3.14 area = pi*radius*radius findArea = area End Function document.write("The area of the circle when the radius is 20 is " & findArea(20) &"<br/>") document.write("The area of the circle when the radius is 10 is " & findArea(10)) </script>
Izlaz ovog koda bit će
Parametri ByRef i ByVal
VBScript argumente možete proslijediti procedurama prema referenci ili prema vrijednosti.
Ako ne specificirate ništa kada pozivate proceduru, tada se argument/argumenti prema zadanim postavkama prosljeđuju referencom.
Ako želite da promjene koje su unesene u argumente traju čak i nakon što se procedura pozove, tada trebate prenijeti VBScript argumente prema referenci.
Kada se argument proslijedi prema vrijednosti, sve promjene koje pozvana procedura učini na vrijednosti varijabla nemojte ustrajati nakon pozivanja postupka.
Ključne riječi ByRef i ByVal koriste se za prosljeđivanje argumenata po referenci odnosno po vrijednosti.
Da biste razumjeli razliku, prvo izvršite donji kod i pogledajte izlaz.
Korak 1) Kopirajte kod u uređivač
<script type="text/vbscript"> Function returnResult(ByRef value) value = value +1 returnResult = value End Function Dim x x=5 call returnResult(x) document.write(x) </script>
Korak 2) izlaz je 6.
Korak 3) Promjena Function returnResult(ByRef value) u Function returnResult(ByVal value)
Korak 4) Sada će vaš izlaz biti 5.

