» »

[javascript] return stavek

[javascript] return stavek

kornilov ::

Prikazan je samo delček kode. Predhodno sem definiral spremenljivki: moznost, rezultat_....., napravil več polj: polje_.....
Koda se izvaja tako kot sem si želel. Zanima me, stavek return. Če ga izbrišem, mi izpiše da sta zadnji spremenljivki undefined. Vem, da return konča izvajanje funkcije, ni mi pa jasno kam in na kakšen način vtakne vrednost?? :|

function mlincek (x_moznost, y_rezultat, z_polje) {
	var x = x_moznost;
	var vrednost;
	if (x_moznost == 1) { 
		vrednost = (z_polje[y_rezultat - 1]);
		return vrednost;
		}
	if (x_moznost == 2) {
		vrednost = (z_polje[y_rezultat - 1 + 5]);
		return vrednost;
		}
	if (x_moznost == 3) {
		vrednost = (z_polje[y_rezultat - 1 + 10]);
		return vrednost;
		}
	}

vrednost_zdravje = mlincek(moznost, rezultat_zdravje, polje_zdravje);	
vrednost_ljubezen = mlincek(moznost, rezultat_ljubezen, polje_ljubezen);

document.write(vrednost_zdravje);
document.write(vrednost_ljubezen);

Yacked2 ::

Return vrne vrednost nazaj od kjer je bila funckija klicana. V tvojem primeru funkcija mlincek priredi vrednost spremenljivki vrednost_zdravlje, ter potem še spremenljivki vrednost_ljubezen.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!

garamond ::

return ne samo da konča izvajanje funkcije, ampak tudi vrne spremenljivko (v tvojem primeru "vrednost"). V vrstici, ko prirediš "vrednost_dravje" se funkcija izvede s parametri, ki si jih poklical, in priredi "vrednost_zdravje" to, kar si vrnil z return. Še enkrat se to naredi za "vrednost_ljubezen". Vrneš lahko različne stvari, ne samo številke; včasih tudi boolean (true ali false) ali objekte.

Mislim da je v javascriptu tako, da če v funkciji eksplicitno ne uporabiš "return", le ta vrne "undefined".
Mogoče bi imela spremenljivka vrednost "undefined" tudi če ji ne bi priredil nobene vrednosti, ampak jo samo dekleriral ("vrednost_zdravje;") ... poskusi :)

kornilov ::

Funkcija je bila klicana v 18 in 19 vrstici. Zakaj pravimo, da gre vrednost/spremenljivka nazaj? Gre spremenljivka nazaj po vrednost ali gre vrednost naprej do spremenljivke? Pomensko me malo bega.
Mislim da je v javascriptu tako, da če v funkciji eksplicitno ne uporabiš "return", le ta vrne "undefined".
Da, to sem že sam ugotovil. :)
Mogoče bi imela spremenljivka vrednost "undefined" tudi če ji ne bi priredil nobene vrednosti, ampak jo samo dekleriral ("vrednost_zdravje;") ...

V tem primeru koda ne deluje.

BaRtMaN ::

Ta terminologija, da "gre spremenljivka/vrednost nazaj", je čudna.

Uveljavljena fraza je, da funkcija vrne vrednost (ali referenco, če ne gre za enostaven podatkovni tip). To vrednost (ali referenco oz. kazalec) lahko ignoriraš, lahko jo pripišeš neki spremenljivki za večkratno uporabo ali jo uporabiš direktno v nekem izrazu.

Če te zanima sam mehanizem, kako nek podprogram vrača vrednost, si oglej, kaj sta to sklad (stack) in aktivacijski oz. klicni zapisi (activation record).

wungad ::

Return ti vrne undefined. Torej tvoji dve variabli kazeta na to kar funkcija vrne. Kot ti je napisal garamond, to je default return value ce returna nimas eksplicitno definiranega v funkciji.
.

kornilov ::

Hvala in lep pozdrav vsem. ;)

frudi ::

Kot je garamond pravilno ugotovil, v Javascript funkcija implicitno vrne undefined, če se do konca izvajanja ne kliče return, zato so tvoje končne vrednosti undefined, če pobrišeš return stavke.

Mimogrede, celotno funkcijo lahko prepišeš v eno samo vrstico:
var mlincek = function(x, y, z) {
	return z[y - 1 + 5 * (x - 1)];
};
1ACDoHVj3wn7N4EMpGVU4YGLR9HTfkNhTd... in case I've written something useful :)

lebdim ::

vedno moraš na koncu vrniti neko vrednost z ukazom return ... funkcija drugače lahko "vrne" različne stvari: tabelo, kazalec na en objekt, izraz boolean (true ali false oz. 1 ali 0) ...

sicer pa mislim, da si prej spraševal o klicu spremenljivke po vrednosti ali pa po referenci ...
tvoja domača naloga pa je, da najprej osvojiš, kakšne so razlike in kako to vpliva na spremenljivke v glavnem programu, če ob klicih funkcij kličeš po vrednosti in pa po referenci ...

to je ključno, da veš oz. znaš uporabiti pri tej snovi ...


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[Qt/C++]problem z Undefined reference na konstanti znotraj razreda

Oddelek: Programiranje
102157 (1827) phantom
»

python-pomoč pri nalogi z nizi

Oddelek: Programiranje
181435 (1133) galu
»

PHP in objektno programiranje (strani: 1 2 )

Oddelek: Programiranje
8511320 (9787) kivi113
»

HTML forma in datum

Oddelek: Izdelava spletišč
131714 (1450) Muzo
»

Array iz function pointer-jev

Oddelek: Programiranje
121241 (1116) OwcA

Več podobnih tem