Was sind Verschlüsse und Rückrufe in JavaScript? Ich habe noch keine gute Erklärung für beides gefunden.Was sind Closures und Callbacks?
Antwort
Closures bereits in Stackoverflow ist hier nur eine Auswahl gut behandelt worden: -
How does a javascript closure work?
What exactly does “closure” refer to in JavaScript?
can you say this is a right example of Javascript Closure.. Where the places we need to consider avoiding the closures??
JavaScript scope and closure
Javascript Closures and ‘this’ context
JavaScript - How do I learn about “closures” usage?
Rückrufe sind ein einfacheres Konzept. Ein Callback ist grundsätzlich, wenn eine Funktion eine andere Funktion als Parameter akzeptiert. Irgendwann während der Ausführung führt die aufgerufene Funktion die als Parameter übergebene Funktion aus, dies ist ein Rückruf. Ziemlich oft tritt der Rückruf tatsächlich als ein asynchrones Ereignis auf, in welchem Fall die aufgerufene Funktion zurückkehren kann, ohne den Rückruf ausgeführt zu haben, was später passieren kann. Hier ist ein gemeinsames (Browser-basierte) Beispiel: -
function fn() { alert("Hello, World"); }
window.setTimeout(fn, 5000);
Hier kann die Funktion fn
als Rückruf an die setTimeout
Funktion übergeben. Set Timeout kehrt sofort zurück, jedoch 5 Sekunden später wird die als Callback übergebene Funktion ausgeführt.
Verschlüsse und Rückrufe
Oft ist der Grund, die erhalten erstellte Schließungen (entweder übrigens zufällig oder absichtlich) ist die Notwendigkeit, einen Rückruf zu erstellen. Zum Beispiel: -
function AlertThisLater(message, timeout)
{
function fn() { alert(message); }
window.setTimeout(fn, timeout);
}
AlertThisLater("Hello, World!", 5000);
(Bitte einige der verlinkten Beiträge lesen Schließungen zu erfassen)
Verschluss geschaffen wird, das teilweise die message
Parameter wird fn
einige Zeit nach dem Aufruf von AlertThisLater
hat ausgeführt zurückgegeben, noch fn
hat immer noch Zugriff auf den ursprünglichen Inhalt von message
.
Werden Callbacks am häufigsten mit setTimeout verwendet? –
setTimeout ist eine häufige Verwendung, aber ebenso häufig wäre 'onreadystatechange' auf dem' XmlHttpRequest' -Objekt. In Code, der Javascript-Frameworks wie JQuery verwendet, werden Sie auch umfangreiche Callbacks verwenden. In vielen dieser Fälle ist der Callback genau dort, wo Sie ein wenig Logik bereitstellen würden, um einen großen, aber ansonsten standardmäßigen Prozess anzupassen. Auch Callbacks werden häufig verwendet, um dieselbe Funktion für eine Reihe von Objekten auszuführen. – AnthonyWJones
http://stackoverflow.com/questions/1095707/what-is-the-exact-definition-of-a-closure –
Haben Sie dies in Google versucht: "JavaScript-Site schließen: stackoverflow.com" (Don ' t störe mit dem Suchfeld in SO selbst seinen Müll) Es gibt viele Orte, wo Schließungen beschrieben werden – AnthonyWJones
http://StackOverflow.com/Questions/111102/how-does-a-javascript-closure-work – Upperstage