2012-09-26 12 views

Odpowiedz

16

Oto co spec mówi o lexical environments:

leksykalne Środowisko jest Rodzaj używany do określenia stowarzyszenie identyfikatorów specyficznych funkcji i zmiennych oparciu leksykalnej struktury zagnieżdżenia kodu ECMAScript. Środowisko leksykalne składa się z rekordu środowiska i prawdopodobnie zerowego odniesienia do zewnętrznego środowiska leksykalnego.

Na tej podstawie powiedziałbym "tak", o czym zwykle mówią ludzie, gdy mówią "zakres".

Chociaż może to prawdopodobnie twierdził, że „zakres” jest właściwie zdefiniowana jako „Declarative Environment Record”:

Każdy rekord deklaratywne środowisko jest związany z zakresem programu ECMAScript zawierającego deklaracje zmiennych i/lub funkcji. Deklaracyjny zapis środowiska wiąże zestaw identyfikatorów określony przez deklaracje zawarte w jego zasięgu.

Jeśli myślisz o "zasięgu" jako rzeczy, która zawiera powiązania między identyfikatorami i wartościami, to druga definicja prawdopodobnie pasuje lepiej. Jeśli myślisz o tym jako o świadomości swoich przodków, to pierwsza definicja pasuje lepiej.

Edytuj: a trzecią opcją jest "Execution Context".

+0

Druga definicja odnosi się do "zakresu", więc nie może być definicją samego "zakresu". – OrangeDog

+0

Tak, może. Pytanie dotyczy zakresu "programowania". Druga definicja używa "normalnej" (słownik, jeśli wolisz) angielskiej definicji zakresu słowa. – zenw0lf

2

Środowisko leksykalne jest środowiskiem funkcji, w której jest napisane. Oznacza to, że statyczna kolejność/miejsce, w którym się znajduje, niezależnie od tego, skąd jest wywoływana.

Zasięg zmiennej/funkcji to w zasadzie lokalizacje, z których zmienna jest widoczna/dostępna.

Kontekst wykonawczy jest stanem stosu wykonawczego w dowolnym momencie podczas wykonywania. To jest bieżący kontekst wykonania.