coldfusion scope coldfusion-9

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: