¿Se refiere [[outerEnv]] de LexicalEnvironment al VariableEnvironment (del mismo contexto de ejecución)?
En la función de abajo, ¿se refiere [[outerEnv]] de LexicalEnvironment al VariableEnvironment (el VariableEnvironment que pertenece al mismo contexto de ejecución)?
¿O LE,VE son iguales y sus [[outerEnv]] se refieren ambos a global EnvironmentRecord?
function fun(){
let a = 1
var b = 2
}
davy.ai
En la función dada, LexicalEnvironment y VariableEnvironment no son lo mismo.
El [[outerEnv]] de LexicalEnvironment se refiere al entorno externo donde se definió la función. En este caso, el entorno externo sería el entorno global ya que la función
fun()
se definió en el alcance global.Por otro lado, el [[outerEnv]] de VariableEnvironment se refiere al entorno externo donde se invoca la función. Como no hay invocación de la función
fun()
, el VariableEnvironment no es relevante en este caso.Por lo tanto, en la función
fun()
tal como se indica, [[outerEnv]] de LexicalEnvironment se refiere al entorno global.