Ergebnis 1 bis 10 von 10
-
25-04-2011, 11:30 #1
Grünschnabel
- registriert
- 25-04-2011
- Beiträge
- 4
Globale Variable per Parameter ändern
Hallo,
ich habe ein Problem mit einer gloablen Variable! Diese kann ich zwar in einer Funktion ändern, jedoch wird sie danach nicht als geändert belassen. Vielleicht liegt das am Parameter...
In meinem Fall muss ich aber den Parameter auf jeden Fall verwenden.
Code:<html> <script type="text/javascript"> var Wert = 2; function inc (zahl) { zahl = zahl + 1; alert(zahl) } </script> <form> <input type="button" value="Klick mich!" onclick="alert (Wert); inc (Wert);"></input> </html>
-
25-04-2011, 11:32 #2
-
25-04-2011, 11:36 #3
Jungspund
- registriert
- 24-06-2006
- Beiträge
- 21
AW: Globale Variable per Parameter ändern
Weil deine Funktion die Variable Wert nicht anrührt.
Es wird lediglich eine weitere globale Variable namens zahl angelegt.
In Javascript laufen Funktionen immer per "call by Value".
Das bedeutet, wenn du der Funktion inc die Variable Wert übergibst, wird ihr der Inhalt übergeben. Von wem dieser Inhalt kommt, ist der Funktion egal.
Wenn du also deine Funktion folgend umänderst, müsste es funktionieren:
Code:function inc (zahl) { Wert = zahl + 1; alert(Wert) }
oha war ich zu langsamGeändert von Jodli (25-04-2011 um 11:37 Uhr) Grund: Nachtrag
-
25-04-2011, 11:45 #4
Grünschnabel
- registriert
- 25-04-2011
- Beiträge
- 4
AW: Globale Variable per Parameter ändern
Danke für die Antworten!
Aber leider habe ich dass Problem, dass ich die Funktion von verschiedenen ,,Orten" aus aufrufen möchte!
Code:<html> <script type="text/javascript"> var ersterWert = 1; var zweiterWert = 2 function inc (zahl) { Zahl = zahl + 1; } </script> <form> <input type="button" value="Klick mich!" onclick="alert (ersterWert); inc (ersterWert);"></input> <input type="button" value="Klick mich!" onclick="alert (zweiterWert); inc (zweiterWert);"></input> </html>
Was kann ich da machen, um auch die globalen Variablen zu ändern?
-
25-04-2011, 11:59 #5
Jungspund
- registriert
- 24-06-2006
- Beiträge
- 21
AW: Globale Variable per Parameter ändern
Was spricht gegen Junkees Lösung?
Zusätzlich wäre es auch möglich, globale Variablen mittles window["globale_Variable"] zu ändern.
-
25-04-2011, 12:02 #6
Grünschnabel
- registriert
- 25-04-2011
- Beiträge
- 4
AW: Globale Variable per Parameter ändern
Mmmh, ich verstehe zwar die Logik, scheitere aber an der Ausführung...
Code:<html> <script type="text/javascript"> var ersterWert = 1; var zweiterWert = 2; function inc (zahl) { Zahl = zahl + 1; } </script> <form> <input type="button" value="Klick mich!" onclick="alert(ersterWert); ersterWert = inc(ersterWert);"></input> <input type="button" value="Klick mich!" onclick="alert(zweiterWert); zweiterWert = inc(zweiterWert);"></input> </html>
Geändert von mondfinsternis (25-04-2011 um 12:06 Uhr)
-
25-04-2011, 12:12 #7
-
25-04-2011, 12:12 #8
Jungspund
- registriert
- 24-06-2006
- Beiträge
- 21
AW: Globale Variable per Parameter ändern
achso ja. Die Funktion muss den Wert auch zurück geben, damit es funktionieren kann.
Momentan müssten deine Variablen nach dem Funktionsaufruf den Wert undefined haben (da die Funktion nichts zurück gibt).
Hau in deine Funktion ans Ende noch ein
Code:return zahl;
).
EDIT
aber nur wenn die Variable kein Objekt ist.
Hatte pointer nicht bedacht, dankeGeändert von Jodli (25-04-2011 um 12:19 Uhr) Grund: Nachtrag
-
25-04-2011, 15:59 #9
AW: Globale Variable per Parameter ändern
Man könnte auch noch so was machen:
Code:function inc(variableName){ window[variableName]++; } inc("ersterWert");
-
25-04-2011, 17:21 #10
Grünschnabel
- registriert
- 25-04-2011
- Beiträge
- 4
AW: Globale Variable per Parameter ändern
@ Jodli:
Danke!
Die Lösung lautet also:
Code:<html> <script type="text/javascript"> var ersterWert = 1; var zweiterWert = 1; function inc (zahl) { zahl = zahl + 1; return zahl; } </script> <form> <input type="button" value="Klick mich!" onclick="alert(ersterWert); ersterWert = inc(ersterWert);"></input> <input type="button" value="Klick mich!" onclick="alert(zweiterWert); zweiterWert = inc(zweiterWert);"></input> </html>
Ähnliche Themen
-
globale Variable
Von ru2009ru im Forum JavaScriptAntworten: 12Letzter Beitrag: 30-12-2010, 15:16 -
Globale Variable
Von kulturfenster im Forum JavaScriptAntworten: 2Letzter Beitrag: 24-08-2009, 15:38 -
Closure und globale Variable
Von WootWoot im Forum JavaScriptAntworten: 8Letzter Beitrag: 15-02-2008, 19:29 -
globale variable
Von jr-ewing im Forum JavaScriptAntworten: 2Letzter Beitrag: 13-11-2007, 12:13 -
globale Variable in Funktionen
Von Iltis im Forum JavaScriptAntworten: 4Letzter Beitrag: 22-03-2004, 21:24
Lesezeichen