Dies ist nicht verwandt mit this
als solche func.apply
und func.call
nicht zutreffend (kein Wortspiel beabsichtigt).Wie übergebe ich einen nicht 'diesen' Kontext an eine Funktion
Ich muss den aktuellen Kontext einer Funktion an eine andere Funktion übergeben, mit der ich meine, ich brauche Zugriff auf die genannten lokalen Variablen innerhalb einer Funktion.
hier ist ein etwas konstruiertes Beispiel:
function doSomething(f){
eval(f)
}
function test(callback){
doSomething("callback.apply(1, 2)")
}
test(function(a, b){
console.log(a + b);
})
Wie kann ich die lokale Variable übergeben callback
zu doSomething
so ist es eval
vorhanden - ich erkenne dies ein konstruiertes Beispiel ist. Ist das überhaupt möglich?
Ich weiß, dass verschachtelte Kontexte übertragen werden, also wenn ich doSomething
innerhalb test
erklären würde, würde dies einfach funktionieren. Aber das hilft mir nicht.
zuerst dachte ich, dass es möglich war, den übergeordneten Kontext zugreifen, aber [es ist nicht] (http: // Stackoverflow. com/questions/6332017/how-to-get-diesen-Wert-der-Aufrufer-Funktion). Warum gibt es ein Problem, das "this" an die Funktion weitergibt? Sollte ein globaler Stapel von Kontexten für Ihr Problem funktionieren? – Wikiti
Was ist dein tatsächliches Problem? Nein, es ist niemals möglich, auf beliebige Funktionskontexte zuzugreifen. – Bergi
Werfen Sie einen Blick auf [dieses Snippet] (http://stackoverflow.com/a/24032179/1048572), die eine Form von Eval verwendet, die auch erlaubt, bestimmte Dinge in den Testbereich – Bergi