Chiusure JavaScript
variabili JavaScript possono essere variabili locali o globali.
Le variabili private possono essere utilizzate chiusura.
Variabili globali
La funzione può accedere alle variabili definite dalle funzioni interne, come ?:
Funzione accessibile anche al di fuori delle funzioni definite variabili quali:
Un esempio della schiena, a è una variabile globale.
Nella pagina web appartengono all'oggetto globale window variabile.
Le variabili globali possono essere utilizzati in tutti gli script nella pagina.
In primo luogo, a è una variabile locale.
Le variabili locali possono essere utilizzati solo per definire il suo funzionamento interno. Per altra funzione o codice di script non è disponibile.
Anche le variabili globali e locali con lo stesso nome, ma sono anche due variabili diverse. Modificare uno, non influenzerà il valore dell'altro.
Se non si dichiara una variabile utilizzando la parola chiave var, allora è una variabile globale, anche se esso è definito all'interno della funzione. |
ciclo di vita Variabile
Ambito di variabili globali sono globali, vale a dire, tutto il programma JavaScript, le variabili globali sono ovunque.
Nella variabile dichiarata all'interno di una funzione, funzionano solo all'interno della funzione. Queste variabili sono locali, di portata locale, parametro della funzione è localizzata, solo all'interno del lavoro di funzione.
Contatore Dilemma
Se si vuole immaginare alcune statistiche numeriche, e gli sportelli sono disponibili in tutte le funzioni.
È possibile utilizzare le variabili globali, funzione imposta il contatore viene incrementato:
Esempi
la funzione add () {
contatore + = 1;
}
add ();
add ();
add ();
// Contatore è ora 3
Prova »
La modifica del valore del contatore si è verificato per l'attuazione della funzione add ().
Ma la domanda è, qualsiasi script della pagina può cambiare il contatore, anche se non c'è nessuna chiamata per aggiungere la funzione ().
Se io dichiaro una funzione all'interno del contatore, se non chiamare la funzione non modificare il valore del contatore:
Esempi
contatore var = 0;
contatore + = 1;
}
add ();
add ();
add ();
// Intenzione è quella di uscita 3, ma non ha, l'uscita è 1!
Prova »
Il codice di cui sopra non uscirà correttamente, ogni volta che io chiamo di aggiungere la funzione (), il contatore viene impostato a 1.
funzione inline JavaScript in grado di risolvere questo problema.
JavaScript funzioni nidificate
Tutte le funzioni possono accedere alle variabili globali.
Infatti, in JavaScript, tutte le funzioni possono accedervi sul pavimento di portata.
JavaScript supporta le funzioni annidate. La funzione annidata può accedere alle variabili sullo strato funzione.
In questo esempio, la funzione nidificata più () può accedere alla variabile contatore funzione principale:
Esempi
contatore var = 0;
funzione di più () {contatore + = 1;}
PLUS ();
tornare contatore;
}
Prova »
Se siamo in grado di accedere alla funzione più esterno (), in modo da poter affrontare la difficile situazione del contatore.
Dobbiamo anche assicurare che contatore = 0 solo una volta.
Abbiamo bisogno di chiusura.
Chiusure JavaScript
Ricordate le chiamate di funzione per sé fare? Questa funzione farà?
Esempi
contatore var = 0;
funzione di ritorno) {contatore ritorno + = 1;} (
}) ();
add ();
add ();
add ();
3 // contatore
Prova »
Esempi di analitica
Aggiungere la variabile parola indica il valore di ritorno della funzione chiama se stessa.
funzione di auto-chiamata viene eseguita solo una volta. Impostare il contatore a zero. E tornare alla funzione di espressione.
aggiungere variabile in funzione dell'uso. La gran parte è che può essere letta sulla portata del contatore strato di funzione.
Questo si chiama chiusure JavaScript. Ha una variabile privata in modo che la funzione diventa possibile.
Contatore che l'ambito di protezione di un funzione anonima può essere modificato solo con il metodo add.
Le chiusure sono accessibili su una funzione variabile portata all'interno di una funzione, anche se la funzione strato è stato chiuso. |