JavaScript funkcije

FUNKCIJE

Šta su funkcije?

Ako želimo da jedan blok koda izvršavamo po potrebi na mnogim mestima , zapisaćemo taj kod i daćemo mu ime. To ime će biti ime funkcije. Sintaksa

function ispis(){
alert(‘Ovo je funkcija’);
}

Onda ćemo je pozvati , gde god nam u kodu zatreba sa navodjenjem njenog imena, u obliku:

ispis();

Ovo je najprostiji oblik funkcije. Zašto? U primeru iznad funkcija nema nikakve argumente koje joj prosledjujemo. Argumenti se navode unutar zagrada koje se nalaze posle imena funkcije. U našem slucaju, ako želimo da ispišemo vrednost promenljive u okviru web strane, napisaćemo:

function ispis(){
alert(‘Ovo je funkcija’);
}

Drugi primer koji ćemo pogledati je primer u kome funkciji prosledjujemo parametre. Pogledajmo kod:

function mnozenje(x,y){
alert x*y;
}

Ovoj funkciji prosledjujemo argumente nad kojima vršimo odredjene manipulacije unutar funkcije, u ovom slučaju operaciju množenja.

Iz programa je pozivamo navodjenjem vrednosti parametara x i y. U ovom slučaju, x i y nije potrebno prethodno deklarisati kao promenljive već je dovoljno napisati sledeće:

mnozenje(2,5);

Ovim će funkciji množenje za parameter x biti pridružena vrednost 2 a parametru y vrednost 5

Rezultat izvršenja ove funkcije biće popup prozor sa ispisanim brojem 10.

Šta ako ne želimo da ispišemo vrednost u okviru popup prozora, tj. želimo da vrednost dobijenu izvršenjem funkcije upotrebimo za neka dalja izračunavanja? U tom slučaju, u samoj funkciji dodaćemo službenu reč return ispred izraza x*y a vrednost funkcije uskladištiti u promenljivu pri pozivanju. Sama funkcija izgledaće ovako:

function mnozenje(x,y){
return x*y;
}

A pozivanje i smeštanje u promenljivu rezultat biće napisano kao:

var rezultat=mnozenje(2,5);

Šta se dešava u slučaju da funkciji prosledjujemo različit broj parametara od onog koji ona pretpostavlja? Na primer, šta ako funkciju definišemo sa 2 ulazne promenljive a pozovemo je sa navodjenjem 3?

function mnozenje(x,y){
return x*y;
}

pozivanje i smeštanje u promenljivu rezultat biće napisano kao:

var rezultat=mnozenje(2,5,7);

U slučaju Java Scripta, treća vrednost 7 ce biti ignorisana, tj. funkcija će prvu vrednost asocirati uz x, drugu uz y a treću ignorisati.

Postoji i druga opcija a to je, šta ako prosledimo manje parametara funkciji od broja parametara koje ona očekuje?

Nedostajuće vrednosti biće setovane kao undefined i za slučaj da ta opcija nije predvidjena u funkciji, doći ce do greške u izvršavanju. Ovaj scenario bi izgledao ovako:

function mnozenje(x,y){
return x*y;
}
var rezultat=mnozenje(2);

U ovom slučaju, vrednost promenljive x će biti 2 dok će promenljiva y biti nedefinisana – NaN. Ove situacije naravno treba izbegavati.

 

OPSEG PROMENLJIVIH UNUTAR FUNKCIJE

Promenljiva koju definišemo u okviru funkcije lokalnog je karaktera što znaci da njeno direktno pozivanje van funkcije neće imati smisla, tj. doći ce do greške. Ukoliko želimo da promenljiva bude vidljiva, tj. upotrebljiva i van funkcije, onda ćemo je eksplicitno definisati van funkcije. Primer kada je promenljiva vidljiva samo unutar funkcije:

function opseg(){
var x=500;
alert(x);
}

Kao što pretpostavljate, pozivanje ove funkcije izbaciće popup prozor sa ispisom 500. Ukoliko, van tela funkcije pokušamo sledeće:

alert(x);

nećemo uspeti, tj. dobićemo grešku da promenljiva nije definisana.

Ukoliko ipak želimo da promenljiva x i njena vrednost budu dostupne i kodu izvan funkcije onda ćemo promenljivu x definisati izvan funkcije a unutar funkcije izostaviti službenu reč var:

var x;
function opseg(){
x=500;
}
Sada, ako izvan funkcije pokušamo da je pozovemo sa alert(x); ipak ce doći do greške jer je nismo prethodno pozvali tj. definisali izvršenjem funkcije. Tako da ono što moramo uraditi izvan funkcije svodi se na dve stvari:

Prvo pozovemo funkciju:

opseg();
a zatim koristimo promenljivu iz funkcije:

alert(x);

Preporučite ovaj članak:
Email this to someoneShare on Google+Share on FacebookShare on LinkedIn