W danym kontekście wykonania obiekt Zmienny jest obiektem Aktywacji tego kontekstu wykonania.
Z moich badań online mogę znaleźć poprzednie zdanie przeformułowane na różne sposoby, ale nikt nie jest w stanie powiedzieć, co to jest.
Co to jest obiekt aktywacyjny?
javascript
terminology
rsman
źródło
źródło
Odpowiedzi:
Zacznę od korzeni ...
Kontekst wykonania to obiekt, który składa się z:
this
wartośćObiekt zmienny jest abstrakcyjną rzeczą, którą może być jeden z tych:
window
,document
lubconsole
w przeglądarce) zamieszkująObiekt aktywacji to obiekt, który zawiera:
arguments
obiekt dla tej funkcjiTak więc obiekt aktywacyjny jest tylko specjalnym przypadkiem obiektu zmiennego.
Jest to w zasadzie pojemnik na wszystkie lokalne rzeczy, do których można uzyskać dostęp po nazwie wewnątrz funkcji, z wyjątkiem
this
. Być może jestem tu nieprecyzyjny, ale tak myślę.Więcej wyjaśnień z kilkoma ładnymi zdjęciami:
źródło
Obiekt aktywacji to obiekt używany do przechowywania właściwości opisujących środowisko i zakres funkcji wykonawczej. W tym obiekcie przechowywane są na przykład argumenty funkcji. Z definicji AKTYWACJA oznacza spowodowanie, że coś zadziała lub FUNKCJA. Kiedy więc usłyszysz „Obiekt aktywacyjny”, pomyśl o obiekcie „FUNKCJA” lub jeszcze lepiej o obiekcie głównym, LOKALNYM dla funkcji (tj. FUNKCJONALNY OBIEKT LOKALNY).
W odniesieniu do obiektu Variable, obiekt Activation jest mniej więcej konkretnym wystąpieniem obiektu Variable, który sam w sobie (odnosząc się do obiektu Variable tutaj) jest typem obiektu ABSTRACT. Jak stwierdzono tutaj ...
Dlatego w środowisku i zakresie globalnego kontekstu wykonania (tj. Poza funkcją) obiekt globalny jest obiektem zmiennej. W przeglądarce, ponieważ globalnym lub najbardziej zewnętrznym środowiskiem wykonawczym jest WINDOW przeglądarki, jest to
window
obiekt, który ostatecznie jest używany jako obiekt Zmienna. Dlatego zmienne zadeklarowane za pomocąvar
słowa kluczowego poza funkcjami kończą się nawindow
obiekcie.Jednak w zakresie funkcji jest to obiekt aktywacji (tj. Obiekt lokalny funkcji), który jest obiektem zmiennym, ponieważ jest to obiekt, który służy do przechowywania właściwości opisujących zakres funkcji wykonawczej.
źródło