[latex]Mae govannen![/latex]
window.onload = function () {
var gauge1 = new Gauge();
}Damit wird gauge1 aber lokal innerhalb der namenlosen Funktion erzeugt und nach dem Beenden der Funktion wieder entsorgt. Wenn du das Schlüsselwort var weglässt, wird gauge1 global, bleibt also bestehen und ist von überall aus zugänglich.
.. was aber ausgesprochen schlechter Stil ist. Es „verschmutzt“ das window-object (Schleifen über Eigenschaften dieses Objekts brauchen z.B. entsprechend länger) und sorgt potentiell für Probleme durch Namenskollisionen mit existierenden oder irgendwann neu hinzukommenden Funktions-/Eigenschaftsnamen, die z.T. einfach überschieben werden.
Besser wäre es, die Variable außerhalb der onload-Funktion zu initialisieren und dann z.B. den gesamten Code in eine anonyme, selbst-ausführende Funktion einzuschließen:
[code lang=javascript](function () {
var gauge1;
window.onload = function () {
gauge1 = new Gauge();
};
function ichwerdenach20sekundenaufgerufen() {
window.alert(typeof gauge1);
};
window.setTimeout(ichwerdenach20sekundenaufgerufen, 20000);
})();
Oder man definiert sich für das gesamte JS ein Objekt, das sozusagen als „Namespace“ dient:
~~~javascript
var Ohrwurm = {};
window.onload = function () {
Ohrwurm.gauge1 = new Gauge();
};
// Diese Funktion wird irgendwann ausgeführt und kennt
Ohrwurm.blablubb = function() {
alert(typeof Ohrwurm.gauge1);
};
Cü,
Kai
Even if you are a master of jQuery, you can only create mediocre (at best)
scripts. The problem is that the authors you rely on have not mastered the
DOM themselves. It's like one blind guy leading another off a cliff (D.Mark/clj)
Foren-Stylesheet Site Selfzeug JS-Lookup
SelfCode: sh:( fo:| ch:? rl:( br:< n4:( ie:{ mo:| va:) js:| de:> zu:) fl:( ss:| ls:?