Показать сообщение отдельно
  #31 (permalink)  
Старый 21.09.2009, 20:12
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

Сообщение от Riim
я имел в виду аккуратно удалять незначащие звенья в этой цепи
Да, по логике вещей такую оптимизацию можно сделать (и скорей всего, движки делают что-то подобное, но в любом случае, чтобы знать точно - надо проанализировать все исходники движков). На уровне же специфиации - все функции, всегда, без исключения, запоминают Scope свойством [[Scope]].

Сообщение от Riim
можно не запоминать AO(контекста "B") и из "C" сразу в "A" ссылаться.
Тут есть важный нюанс - на момент активации "B", функция "А" уже может не существовать. А функция "С" создаётся функцией "B". Соответственно, чтобы получить доступ к объекту активации контекста функции "А", "С" должна обратиться к Scope контекста "B" и запомнить этот Scope, как C.[[Scope]].
__________________
Тонкости ECMAScript

Последний раз редактировалось Dmitry A. Soshnikov, 21.09.2009 в 20:27.
Ответить с цитированием