Algunos ejemplos de los scopes de javascript:
var scopeVar = "Global";
var scopeObj = {
scopeVar: "Local",
scopeTest: function() {
console.log("//Llamando desde un objeto");
console.log(scopeVar);
console.log("//Usando this");
console.log(this.scopeVar);
console.log("");
},
};
scopeObj.scopeTest();
var scopeTest = function() {
var scopeVar = "Local";
console.log("//Desde una funcion?");
console.log(scopeVar);
console.log("//Pero como quiera podemos acceder a la global con window");
console.log(window.scopeVar);
console.log("");
}();
var scopeTestGlobal = function() {
console.log("//Que pasa si modificamos scopeVar sin var desde una funcion?");
scopeVar = "Cambia la Variable global";
console.log(window.scopeVar);
console.log("");
}();
if(scopeVar == "Global") {
console.log("//Y si lo hago dentro de una estructura de control?");
var scopeVar = "Yo tambien soy Global.";
console.log(window.scopeVar);
console.log("");
}
//Dentro de las estructuras de control tambien son globales.
for(var i = 0; i < 1; i++){
console.log("//Y dentro de un for?");
var scopeVar = "Dentro de un for tambien soy Global!";
console.log(window.scopeVar);
console.log("");
}
console.log("//la variable de control seguramente es local no? pues no: ");
console.log(window.i);
console.log("");
while(i > 0) {
console.log("//No me digas que...");
var scopeVar = "Sip, dentro de un while yo tambien soy Global!";
console.log(window.scopeVar);
console.log("");
i--;
}.