Funktionsaufruf Verständnis

N3WM4N

Mitglied
Guten Tag,
ich habe leider ein paar Verständnis Probleme bezüglich der Abläufe der Funktionen.
Im ersten Script wird die Funktion umwand_1(c) aufgerufen. p1 wird dann in der Funktion durch c ersetzt oder?
c ist dann 569 und b bleibt -69;
Jetzt analog dazu wieso wird im zweiten Script dann a verändert? Nach dem Vorgehen aus dem
ersten Skript müsste beim zweiten a ja auch unverändert bleiben. Dies ist aber nicht der Fall.
Ich glaubve ich habe noch ein Verständnis Problem bei Funktionen mit Übergabeparametern.
Vielleicht könnt ihr mir kurz weiterhelfen

[CODE lang="javascript" title="Script 1/Frage1"]<script type="text/javascript"> //<![CDATA[
var b,c=-69;
function umwand_1(p1)
{
p1=569;
return p1;
}
b=umwand_1(c)
//]]>
</script>[/CODE]

[CODE lang="java" title="Script 2"]<script type="text/javascript"> //<![CDATA[
var c,i,a=[9,8,7,6,5,4];
function umwand_5(p1)
{
for(i=0; i<p1.length;i++)
{
p1=p1-1;
return p1;
}
}
c=umwand_5(a);


//]]>
</script>[/CODE]
 

N3WM4N

Mitglied
Also ich hab das jetzt wie folgt verstanden.
Leider habe ich das Thema Objekte noch nicht gehabt.
Also wenn es sich beim Datentyp um ein Objekt handelt, dann wird der Wert auch global verändert.
Und wenn es sich nicht um Objekte handelt, dann wir der Wert nur innerhalb der Funktion geändert also lokal.
Also gehören Arrays zu den Objekten?
Hab ich das jetzt so richtig verstanden.
Vielleicht kannst du ja nochmal kurz Feedback geben
 

Jw456

Top Contributor
Ja Array ist als Objekt zu verstehen und da wird eine Kopie der Reverenz auf das Objekt übergeben. Somit ist es möglich in der methode die Werte zu ändern.

Bei den anderen Variablen ist es eine
primitive variable zb int. Da wird eine Kopie von der intager Variablen übergeben.
 
Zuletzt bearbeitet:
M

Mart

Gast
du stößt im moment auf call by value sachen
JSON => javascript object notation
referenzen
Objekte ansich => sachen die aus bauplänen gebaut wurden
methoden => sachen die die gebauten sachen können, zusätzlich zu den attributen

das alles zu erklären ist der job eines tutorials
 

Oben