JavaScript - Deklaration von Globalen Geltungsbereich Verschachtelte Funktion?
Meine versuche geben, die globalen Gültigkeitsbereich einer verschachtelten JavaScript-Funktion nicht arbeiten:
//DECLARE FUNCTION B IN GLOBAL SCOPE
function B;
function A() {
//DEFINE FUNCTION B INSIDE NEST
B() {
alert("function B is running");
}
}
//CALL FUNCTION B FROM GLOBAL SCOPE
B();
Dies ist nur Neugier-Sie sind richtig, dass ich nicht wirklich irgendwelche guten Grund zu wollen, dies zu tun.
TIA -- ich habe nicht SO ein Konto, um Ihre Antworten reagieren...
- Ich glaube nicht, dass Sie benötigen einen account, um zu kommentieren, Antworten auf Ihre Frage.
- Sie können immer registrieren. Wird nicht weh tun. 🙂 Wie Sie sehen können gibt es viele sehr Prominente Nutzer auf Stackoverflow (ie. Jon Skeet, Joel Spolsky, Jeff Atwood...)
Du musst angemeldet sein, um einen Kommentar abzugeben.
function B;
wird, erzeugen Sie einfach einen syntax-Fehler.Können Sie eine die - Funktion Ausdruck. Als Funktionen sind first-class Objekte, Sie können zuweisen einer Funktion an eine variable:
Könnte man auch lassen
A
Gegenzug eine Funktion:Dies würde die Beziehung zwischen
A
undB
ein wenig klarer.Natürlich können Sie immer definieren Sie eine Globale variable, die durch das weglassen
var
, aber Sie sollten dies sehr sorgfältig. Verwenden Sie so wenig Globale Variablen wie möglich.Und ich Wette, es gibt einen besseren Weg, es zu tun, je nachdem, was Ihr wirkliches Ziel ist.
Mehr über die Funktionen und Funktions-Umfang.
Was:
Können Sie etwas wie das hier tun:
Es ist ein wenig kitschig, um einen direkten Verweis auf "Fenster", so könnte man dies (aus dem globalen Kontext):
Scheint es ein paar Probleme mit dem code
var B;
syntaxVersuchen Sie die folgenden
Du bist in der Nähe, aber nicht ganz korrekt.
Diese sind die kleinste Menge von änderungen, um Ihren code zu machen, arbeiten, wie Sie fragte: