Funktion in einem Schritt definieren und aufrufen
Gibt es eine Möglichkeit in Javascript eine Funktion definieren, und rufen Sie sofort, in einer Weise, die es erlaubt, die wiederverwendet werden können?
Ich weiß, Sie tun können, one-off anonyme Funktionen:
(function(i) {
var product = i * i;
console.log(product);
//Can't recurse here because there's no (ECMA standard) way for the
//function to refer to itself
}(2)); //logs 4
Oder der name einer Funktion, dann nennen Sie es danach:
function powers(i) {
var product = i * i;
console.log(i * i);
if (product < 1e6) { powers(product) };
}
powers(2); //Logs 4, 16, 256...
Aber gibt es eine sauberere Möglichkeit zum definieren und aufrufen einer Funktion in einem Rutsch? Wie eine Art hybrid der beiden Beispiele?
Nicht in der Lage, dies zu tun ist nicht, hindert mich daran, etwas zu tun, aber es fühlt sich an wie es würde sein eine schöne expressive Weise zu schreiben von rekursiven Funktionen oder die Funktionen, die ausgeführt werden müssen, auf $(document).ready()
aber auch später, wenn sich Situationen ändern, etc.
InformationsquelleAutor der Frage quis | 2011-09-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn alle Sie wollen, ist den Zugriff auf die Funktion innerhalb seines eigenen Körpers, man kann einfach einen Namen angeben, der nach der
function
Stichwort:Dies ist ein standard-feature (siehe ECMA-262, ed. 5.1, S. 98).
InformationsquelleAutor der Antwort Matthias Benkard
Alle, die Antworten hier sind in der Nähe, was Sie wollen, aber haben ein paar Probleme (indem es auf globaler Ebene nicht wirklich nennen es, etc). Diese kombiniert ein paar Beispiele auf dieser Seite (obwohl es leider erfordert, dass Sie erinnern
arguments.callee
):Später, können Sie es nennen:
InformationsquelleAutor der Antwort gkoberger
Wenn Sie kümmern sich nicht um die Rückkehr Wert, Sie können dies tun.
InformationsquelleAutor der Antwort Tristan Berger