Angenommen, ich deklariere eine Variable namens foo
in der Bereit-Funktion. Normalerweise werden lokal deklarierte Variablen gelöscht, wenn die Funktion richtig endet?Wie werden Variablen korrekt gespeichert, ohne sie global zu speichern?
Ich möchte diese Variable im Ereignis-Listener von #someid
verwenden. Ich habe dies versucht und die foo
Variable ist immer noch zugänglich, wenn ein Klick-Ereignis auf #someid
auftritt.
Warum ist diese Variable nicht zerstört und immer noch zugänglich, wenn die Bereit-Funktion endet? Ist es sicher, eine Variable zu deklarieren und so zu verwenden? Ich möchte die Variable nicht global deklarieren, wie ich es nicht getan habe.
EDIT: Wo sind diese Ereignislistener und ihre Variablen gespeichert?
Hier ist meine js:
$(document).ready(function() {
var foo = 0;
//random event listener
$('#someId').on('click', function() { foo++; }); //increment foo
});
Related: [Wie funktioniert JavaScript-Schließungen?] (Http://stackoverflow.com/questions/111102/how-do-javascript-closures-work) –
'foo' ist in der lokalen' Geltungsbereich' von '$ (Dokument) .ready 'was ist der Elternbereich für' click-handler' Variablen im 'outer-scope' der' Funktion' sind in der 'Funktion' zugänglich – Rayon
Willkommen bei SO! Außerdem gibt es in dem von Ihnen bereitgestellten Code keine globalen Variablen. – evolutionxbox