Показать сообщение отдельно
  #62 (permalink)  
Старый 17.04.2009, 08:16
...
Отправить личное сообщение для Zeroglif Посмотреть профиль Найти все сообщения от Zeroglif
 
Регистрация: 09.03.2008
Сообщений: 216

Сообщение от kefi
НО ПОЧЕМУ ?????????????????
Funarg, етить его... Функция "запоминает" [[Scope]] (все вышестоящие VO) в момент создания, один раз и навсегда. Дальше уже не имеет значения, куда эту функцию засовывают. Отсюда, если при создании функции 'd', её статичный [[Scope]] - это VO(b)->VO(global), то это уже не изменится, единственное, что динамично - это создание собственного VO(d), что происходит в любой функции с каждым вызовом.

Когда вы отправляете функцию 'd' в качестве аргумента, то у функции 'b' создаётся собственный новый VO(b), но 'd' это не волнует, т.к. неё другой VO(b), созданный ранее при первом вызове. Соответственно, свойство 'c' одного объекта не имеет никакого отношения к свойству 'c' другого объекта...

Последний раз редактировалось Zeroglif, 17.04.2009 в 08:18.
Ответить с цитированием