2012-09-26 28 views

Respuesta

16

Esto es lo que la especificación dice acerca de lexical environments:

A léxico medio ambiente es un tipo de especificación utilizada para definir la asociación de identificadores para variables específicas y funciones basadas en la estructura de anidación léxica de código ECMAScript. Un entorno léxico consiste en un registro de entorno y una referencia posiblemente nula a un entorno léxico externo.

Basado en eso, yo diría que sí, de eso es de lo que la gente suele hablar cuando dice "alcance".

Aunque probablemente podría argumentar que un "ámbito" en realidad se define como un "Declarative Environment Record":

Cada registro entorno declarativo se asocia con un alcance del programa de ECMAScript que contiene declaraciones de variables y/o función. Un registro de entorno declarativo vincula el conjunto de identificadores definidos por las declaraciones contenidas dentro de su alcance.

Si piensa en un "alcance" como algo que contiene enlaces entre identificadores y valores, entonces la 2da definición probablemente se ajuste mejor. Si piensas que es algo que conoce sus antecesores, entonces la primera definición se ajusta mejor.

Editar: y una tercera opción es "Execution Context".

+0

La segunda definición se refiere a un "alcance", por lo que no puede ser una definición de "alcance" en sí. – OrangeDog

+0

Sí, puede. La pregunta es sobre el alcance de "programación". La segunda definición usa la definición "normal" (diccionario si se quiere) en inglés de la palabra alcance. – zenw0lf

2

Entorno léxico es el entorno de la función donde está escrito. Es decir, el orden/lugar estático donde está situado, independientemente de dónde se llame.

El alcance de una variable/función es básicamente las ubicaciones desde donde una variable es visible/accesible.

El contexto de ejecución es el estado de la pila de ejecución en cualquier punto durante el tiempo de ejecución. Ese es el contexto de ejecución actual.

Cuestiones relacionadas