Що таке об’єкт активації в JavaScript?


13

У заданому контексті виконання об'єкт змінної є об'єктом активації цього контексту виконання.

З мого дослідження в Інтернеті я можу знайти попереднє речення, перефразоване по-різному, але ніхто не в змозі сказати, що це таке.

Що таке об’єкт активації?


Об'єкт активації - це самий верхній об'єкт у ланцюзі діапазонів, при цьому найнижчий - глобальний об'єкт . Дивіться цю відповідь для отримання більш детальної інформації.
ikaruss

Відповіді:


17

Дозвольте почати з коріння ...

Контекст виконання - це об'єкт, який складається з:

  • змінний об'єкт, який є об'єктом активації у випадку функцій
  • ланцюг сфери застосування, яку можна розглядати як пов'язаний список зовнішніх областей
  • this значення

Обмінний об'єкт - це абстрактна річ, яка може бути однією з таких:

  • глобальний об'єкт (у глобальному контексті) - місце, де проживають глобальні варіанти (наприклад window, documentабо consoleу браузері)
  • об'єкт активації (для функцій, які визначають області застосування в ECMAScript)

Об'єкт активації - це об'єкт, який містить:

  • формальні аргументи функції
  • arguments об'єкт для цієї функції
  • будь-які vars та (названі) функції всередині цієї функції

Отже, об'єкт активації - це лише особливий випадок об'єкта змінної.

Це в основному контейнер для всіх локальних речей, до яких можна отримати ім'я всередині функції, за винятком this. Я, можливо, тут неточний, але я вважаю, що це так.

Більше пояснень з приємними картинками:


2

Об'єкт активації - це об'єкт, який використовується для зберігання властивостей, що описують середовище та область виконання функції. Саме на цьому об'єкті зберігаються, наприклад, аргументи функції. За визначенням, АКТИВУВАТИ щось, це змусити цю справу діяти чи ФУНКЦІЮ. Отже, коли ви чуєте "об’єкт активації", подумайте "FUNCTION" об'єкт, а ще краще, кореневий об'єкт, який LOCAL для функції (тобто, МІСЬКИЙ ОБ'ЄКТ FUNCTION).

Що стосується об'єкта змінної, об'єкт активації - це більш-менш конкретний екземпляр об'єкта змінної, який сам по собі (маючи на увазі тут об'єкт змінної) - тип об’єкта РЕФЕРАТ. Як зазначено тут ...

Термін "мінливий об'єкт" - це загальний або абстрактний термін, що використовується для позначення будь-якого об'єкта, що містить властивості, що описують середовище та сферу контексту, що виконується в даний час.

Отже, в середовищі та обсязі глобального контексту виконання (тобто, коли знаходиться поза функцією), об'єкт Global є об'єктом змінної. У веб-переглядачі, оскільки глобальне або зовнішнє виконуюче середовище - це ОКОННИЙ БРЮКЕТ, саме цей windowоб'єкт в кінцевому підсумку використовується як об'єкт Змінна. Ось чому змінні, оголошені varключовим словом поза функціями, закінчуються на windowоб'єкті.

В області функції, однак, саме об'єкт активації (тобто локальний об'єкт функції) є об'єктом змінної, тому що саме цей об'єкт використовується для зберігання властивостей, що описують сферу функції виконання.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.