Coldfusion Alcance local fuera de una función?
scope coldfusion-9 (1)
El alcance Local
solo se define dentro de las funciones y no debe usarse fuera de él.
Variables definidas fuera de las funciones, predeterminadas al alcance de las variables
.
//that way
myVar = 0;
//will be the same as
variables.myVar = 0;
Cuando te refieres a la variable local.madVar2
, que se inicializó fuera de la función, te estás refiriendo esencialmente al local.madVar2
en el ámbito de variables
es decir, la variable madVar2
se almacena dentro de una estructura denominada local
que se almacena en el ámbito de las variables
.
Entonces, esencialmente, con el alcance apropiado en su lugar su código se trata como:
writeOutput("variables.local.madVar2: <BR>");
writeDump(variables.local.madVar2);
Intente volcar el alcance de las variables
justo después de definir las variables dentro de la función como:
var madVar = "madness variable";
madVar2 = "madness two variable";
writeDump(variables);
.....
Verá cómo las variables caen en los ámbitos.
¿Qué es exactamente el alcance local definido fuera de una función?
Considera el siguiente código:
<cfscript>
local.madVar2 = "Local scope variable";
function madness() {
var madVar = "madness variable";
madVar2 = "madness two variable";
writeOutput("local: <BR>");
writeDump(local);
writeOutput("========================================= <BR>");
writeOutput("local.madVar2: <BR>");
writeDump(local.madVar2);
writeOutput("<BR>========================================= <BR>");
writeOutput("madVar2: <BR>");
writeDump(madVar2);
writeOutput("<BR>========================================= <BR>");
writeOutput("variables.madVar2: <BR>");
writeDump(variables.madVar2);
writeOutput("<BR>========================================= <BR>");
}
</cfscript>
Cambiando la asignación madVar2 agregando la palabra clave var
, como esta:
function madness() {
var madVar = "madness variable";
var madVar2 = "madness two variable";
Producirá esta salida: