Wenn ich eine Funktion aufrufe, wird ein lokaler Bereich für diesen Aufruf erstellt. Gibt es eine Möglichkeit, diesen Bereich direkt als Objekt zu referenzieren? Genau wie Fenster ist eine Referenz für das globale Scope-Objekt.JavaScript: Verweis auf einen lokalen Bereich für Funktionen als Objekt
Beispiel:
function test(foo){
var bar=1
//Now, can I access the object containing foo, bar, arguments and anything
//else within the local scope like this:
magicIdentifier.bar
}
Alternativ hat jemand eine vollständige Liste von dem, was oben auf benutzerdefinierten Variablen im lokalen Bereich ist?
Hintergrund: Ich versuche, auf einen Weg der vollständigen Verlagerung in den globalen Bereich innerhalb eines Funktionsaufrufs zu kommen, die mit Anweisung ist ein Witz, Aufruf funktioniert ein wenig besser, aber es bricht immer noch für alles in Funktion deklariert Bereich, aber nicht im globalen Umfang, daher würde ich diese wenigen Fälle im globalen Umfang erklären, aber das erfordert von mir zu wissen, was sie sind. Die IE-Funktion execScript macht eine komplette Verschiebung, aber das löst nur das Problem für IE.
Hinweis: Für jeden, der JavaScript dynamisch lädt, ist setTimeout(code,1)
ein einfacher effektiver Hack, um den globalen Geltungsbereich zu erreichen, aber er wird nicht sofort ausgeführt.
Wenn Sie auf das Objekt mit dem 'foo'-Argument innerhalb der Funktion zugreifen müssen, warum übergeben Sie dieses Objekt nicht direkt als Argument? –