Verständnisfrage zu Globalen Variablen

TheGateway

Mitglied
Hi,

ich habe ein Problem mit Variablen. Wenn ich eine Variable über eine Funktion weiter gebe und diese dann Global Speichern möchte, wieso gehtn des ned ?

Bsp:

HTML:
<a href="#" onclick="macheMichGlobal('var ist jetzt dieser Text');"></a>

Javascript:
var global; // müsste doch nun überall erreichbar sein ?

function macheMichGlobal(var) {
global = var;
}

so müsste das doch gehen oder nicht?
oder könnte es daran liegen das ich einigen code ausgelagert habe in JS datein? die globalen Variablen habe ich jedoch am anfang vom code gelassen ...


Vielen Dank für die Hilfe!!
 
Zuletzt bearbeitet:
Tausche bei deiner Funktion das var durch data oder was anderem aus. var ist ein Schlüsselwort bei JS. Kommt in der Browserkonsole eine Fehlermeldung.
 
hi Kalito, dies ist nur ein beispiel! var heisst natürlich anders, trozdem erhalte ich undifined :(

könnte es am auslagern liegen?
 
Laut var - JavaScript | MDN:
MDN hat gesagt.:
var is its current execution context, which is either the enclosing function or, for variables declared outside any function, global

Der von dir bereitgestellte Code (mit einem anderen Namen statt 'var') müsste also funktionieren. Kannst du mehr Code posten? Wie fügst du die Skripte zusammen?
 
ich versuchs mal zu erleutern:

privatMessages.js
Javascript:
function macheMichGlobal(variable) {
meinString = variable;
}

index.php
HTML:
<script src="privatMessages.js"></script>

var meinString; // globale variable


alert(meinString); // ist bei mir undefined, und js datei hat richtigen pfad...


Aufruf irgendwo
HTML:
<a href="#" onclick="macheMichGlobal('var ist jetzt dieser Text');"></a>
 
Also ich verstehe immer noch Bahnhof, das ein zigste, was ich mir denke, ist das .
Link zur Lösung

Sonst verstehe ich nicht genau wie du das meinst. An besten wäre dann ein kompletter Code oder Link
 
Zuletzt bearbeitet:
Code:
global meinevar; 

function macheMichGlobal(variable) {
meinSvar = variable;
}

das global muss vor den Variablenamen
 
Hi,

an der Stelle, an der du mit alert die Variable ausgibst, wurde dieser noch kein Wert zugewiesen und sie ist somit undefined. Nachdem das erste Mal die Funktion macheMichGlobal aufgerufen wurde, ist der Variablen auch ein Wert zugewiesen und sie ist nicht mehr undefined.

Beispiel:
HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>tutorials.de</title>
<script>
    function macheMichGlobal(variable) {
        meinString = variable;
    }
</script>
<script>
    var meinString;

    // Hier ist *meinString* noch *undefined*, da noch kein Wert zugewiesen wurde
    alert(meinString);
</script>
</head>
<body>
    <a href="#" onclick="macheMichGlobal('var ist jetzt dieser Text'); /* Jetzt wurde ein Wert zugewiesen und die Variable ist nicht mehr undefined */ alert(meinString);">Klick</a>
</body>
</html>

@melmager: Das Schlüsselwort global existiert in Javascript nicht.

Vielleicht hilft dir das weiter.

Ciao
Quaese
 

Neue Beiträge

Zurück