2 Stimmen

Wo wird die globale Variable initialisiert, auf die viele Funktionen in JavaScript zugreifen werden?

Ich bin sehr neu in JavaScript. Ich möchte eine Leinwand-Animation entwickeln, die auf einem Blackberry läuft. Dafür würde ich gerne HTML5 und JavaScript verwenden. Ich möchte die folgenden Funktionen erstellen:

  • fonction drawCircle() . Der Mittelpunkt des Kreises ist der Mittelpunkt der Leinwand (die Größe der Leinwand entspricht der Größe des Fensters), der Radius wird vom Benutzer eingegeben. Bis hierhin, wo sollte ich die Leinwand deklarieren, um den Mittelpunkt des Kreises zuzuweisen?

  • fonction draw() die alle Funktionen zum Zeichnen von Formen enthält. Dann wird in der init-Funktion aufgerufen werden.

  • fonction init() . Damit werden die Formen in einem bestimmten Intervall gezeichnet.

Wo soll ich diese anmelden?

  • var canvas = document.getElementById()
  • var context = canvas.getContext()
  • canvas.width = windows.innerWidh

4voto

Andy Punkte 16773

Jede Javascript-Variable, die im globalen Bereich definiert ist (d.h. nicht in einer Funktion oder Klasse), ist vom Rest des Codes aus zugänglich.

var testVariable = "test";
function test() {
    console.log(testVariable);        
}
test();

Alternativ (und das ist als schlechte Praxis verpönt) kann man eine Variable auch ohne das var Modifikator von außerhalb des globalen Geltungsbereichs setzt ihn in den globalen Geltungsbereich:

function test() {
    testVariable = "test";
}

test();
console.log(testVariable);

bearbeiten:

Wie in dem Kommentar zu Recht hervorgehoben wird:

Globale Variablen und Funktionen sind selten erforderlich. Die Verwendung von Globals kann zu Namenskonflikten zwischen javascript-Quelldateien führen und den Code zu brechen. Aus diesem Grund ist es eine gute Praxis zu kapseln Funktionalität innerhalb eines einzigen globalen Namespace zu kapseln...Der einfachste Ansatz ist es, ein einzelnes globales Objekt und die Zuweisung von Eigenschaften und Methoden diesem Objekt zuzuweisen.

Einen Namensraum erstellen:

var MyLib = {}; // global Object cointainer
MyLib.value = 1;
MyLib.increment = function() { MyLib.value++; }
MyLib.show = function() { alert(MyLib.value); }

MyLib.value=6;
MyLib.increment();
MyLib.show(); // alerts 7

Hier ist eine Beschreibung von was ein Namespace ist .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X