Ich frage mich, ob JavaScript unterstützt das Schreiben einer Funktion innerhalb einer anderen Funktion oder verschachtelte Funktionen (ich las es in einem Blog). Ist das wirklich möglich? Tatsächlich habe ich diese verwendet, bin mir aber über dieses Konzept nicht sicher. Ich bin darüber wirklich unschlüssig - bitte helfen Sie!Können Sie verschachtelte Funktionen in JavaScript schreiben?
Antwort
Ist das wirklich möglich.
Ja.
function a(x) { // <-- function
function b(y) { // <-- inner function
return x + y; // <-- use variables from outer scope
}
return b; // <-- you can even return a function.
}
console.log(a(3)(4));
Das Folgende ist böse, aber dient dazu, zu demonstrieren, wie Sie Funktionen wie jede andere Art von Objekt behandeln können.
var foo = function() { alert('default function'); }
function pickAFunction(a_or_b) {
var funcs = {
a: function() {
alert('a');
},
b: function() {
alert('b');
}
};
foo = funcs[a_or_b];
}
foo();
pickAFunction('a');
foo();
pickAFunction('b');
foo();
gutes Beispiel. Ich möchte hinzufügen, dass es wichtig ist, darauf hinzuweisen, dass Funktionen, die in anderen Funktionen definiert sind, nur in diesem Funktionsbereich existieren (es sei denn, Sie weisen diesem Beispiel eine globale Funktion zu). –
Behandeln Sie diese Funktionen wie Objekte, die sie sind –
Funktionen sind erstklassige Objekte, die sein kann:
- Defined in Ihrer Funktion
- Erstellt wie jede andere Variable oder ein Objekt an einer beliebigen Stelle in Ihrer Funktion
- Zurückgegeben von Ihrer Funktion (die nach den beiden oben offensichtlich erscheinen mag, aber immer noch)
am Beispiel von Kenny gegeben bauen:
function a(x) {
var w = function b(y) {
return x + y;
}
return w;
};
var returnedFunction = a(3);
alert(returnedFunction(2));
alarmieren Möchten Sie mit 5.
Diese Methode wird Curry genannt. – Yekver
Sie können nicht nur eine Funktion zurück, die Sie in eine andere Funktion als eine Variable übergeben haben, Sie können es auch zur Berechnung innerhalb verwenden, aber außerhalb definieren. Sehen Sie folgendes Beispiel:
function calculate(a,b,fn) {
var c = a * 3 + b + fn(a,b);
return c;
}
function sum(a,b) {
return a+b;
}
function product(a,b) {
return a*b;
}
document.write(calculate (10,20,sum)); //80
document.write(calculate (10,20,product)); //250
verwende ich das mit Ajax – jscripter
Ja, es möglich ist, in einer anderen Funktion eine Funktion verschachtelt zu schreiben und zu rufen.
Versuchen Sie folgendes:
function A(){
B(); //call should be B();
function B(){
}
}
- 1. Verschachtelte Funktionen Javascript
- 2. Können Sie private Funktionen in JavaScript erben?
- 3. Verschachtelte Funktionen in Javascript mit einem Rückgabewert
- 4. Verschachtelte Funktionen
- 5. Verschachtelte anonyme Funktionen
- 6. Wie verschachtelte Funktionen verspotten?
- 7. Warum verschachtelte Funktionen auf Variablen aus äußeren Funktionen zugreifen können, sie aber nicht ändern dürfen
- 8. Schreiben Callback-Funktionen
- 9. Können Sie verschachtelte Klassen in C++ schützen?
- 10. Können Sie verschachtelte Klassen in PHP haben?
- 11. Können Sie auf [PC] schreiben?
- 12. Können Sie C++ Funktionen von Ada aufrufen?
- 13. Verschachtelte Wörterbuch in CSV schreiben
- 14. Laufende Unit Tests auf verschachtelte Funktionen
- 15. So kombinieren Sie mehrere Return-Funktionen (JavaScript)
- 16. Schreiben Konfigurierbare Schritt Funktionen
- 17. Funktionen, Variablen und verschachtelte wählt
- 18. Sie können JavaScript-Funktionen haben, die andere Funktionen erstellen. Wie funktioniert das?
- 19. Javascript Modul Muster, verschachtelte Funktionen und Sub-Module
- 20. javascript Objektliteral - verschachtelte Funktionen und das „this“ Schlüsselwort
- 21. Verschachtelte Array in JavaScript
- 22. Wie verschachtelte schema.xml in solr schreiben?
- 23. D verschachtelte Funktionen Typ Rückschluss
- 24. Verschachtelte Literale in JavaScript, eine gute Idee?
- 25. Können Sie in ein Byte-Array mit einem FILE schreiben *
- 26. Wie funktionieren verschachtelte Funktionen in MATLAB?
- 27. Private Funktionen in JavaScript
- 28. Übergabe von $ (this) Selektor in verschachtelte Funktionen
- 29. Warum deklarieren Sie immer Funktionen in JavaScript?
- 30. Führen Sie 2 JavaScript-Funktionen in Reihenfolge
Diese Methode wird Curry genannt. – Yekver
Woh! Ich brauche eine Beruhigung, nachdem ich das gesehen habe! –