Сообщение от B~Vladi
|
А внешний [[scope]], который хранит функция fnc2 - это клон или ссылка
|
Ссылка; там же, в статье о замыканиях можно подробно
посмотреть.
Сообщение от B~Vladi
|
или ссылка на [[scope]] функции fnc1?!
|
Свойство [[Scope]] функции - это ссылка на
Scope (Scope chain) порождающего (внешнего) контекста, а не на [[Scope]] внешней функции. Если бы была ссылка на [[Scope]] внешней функции, внутренняя функция не видела бы переменные, объявленные во внешней функции.
Т.е.
f1.[[Scope]] === Scope глобальньного контекста === [Global]
Scope (Scope chain) контекста функции f1 === Объект активации (AO) контекста функции f1 + f1.[[Scope]]:
Scope(f1 Context) == AO(f1 context) + f1.[[Scope]]
А f2.[[Scope]]:
f2.[[Scope]] === Scope(f1 Context) === [AO(f1 context), Global]