Usiamo sé la funzione di esecuzione, per gestire Mirino variabile.
L'ambito di una variabile è la regione del programma in cui è definita. Una variabile globale ha portata globale; è definito ovunque nel tuo codice JavaScript. (Anche nelle vostre funzioni). D'altro canto, le variabili dichiarate all'interno di una funzione sono definite solo all'interno del corpo della funzione. Sono variabili locali e hanno un ambito locale. I parametri di funzione contano anche come variabili locali e sono definiti solo all'interno del corpo della funzione.
var scope = "global";
function checkscope() {
alert(scope);
}
checkscope(); // global
Come si vede, è possibile accedere alla variabile scope
all'interno della vostra funzione, ma, all'interno del corpo di una funzione, una variabile locale ha la precedenza su una variabile globale con lo stesso nome. Se si dichiara una variabile locale o un parametro di funzione con lo stesso nome di una variabile globale, si nasconde effettivamente la variabile globale.
var scope = "global";
function checkscope() {
var scope = "local";
alert(scope);
}
checkscope(); // local
alert(scope); // global
Come si vede, la variabile all'interno della funzione non sovrascriverà le variabili globali. A causa di questa funzione, inseriamo il codice all'interno della funzione autoeseguibile, per evitare di sovrascrivere le altre variabili, quando il nostro codice diventa grande e grande.
// thousand line of codes
// written a year ago
// now you want to add some peice of code
// and you don't know what you have done in the past
// just put the new code in the self executing function
// and don't worry about your variable names
(function() {
var i = 'I';
var can = 'CAN';
var define = 'DEFINE';
var variables = 'VARIABLES';
var without = 'WITHOUT';
var worries = 'WORRIES';
var statement = [i, can, define, variables, without, worries];
alert(statement.join(' '));
// I CAN DEFINE VARIABLES WITHOUT WORRIES
}());
fonte
2013-06-12 06:06:31
Mantenere il namespace globale pulita è una precisa ragione - riducendo così le possibilità di conflitto. – techfoobar