Показать сообщение отдельно
  #24 (permalink)  
Старый 31.03.2009, 23:48
Кандидат Javascript-наук
Отправить личное сообщение для kefi Посмотреть профиль Найти все сообщения от kefi
 
Регистрация: 12.03.2009
Сообщений: 148

Цитата:
Во втором случае, у Вас FD:
Код:
function F (){ /* код функции */; }
this.action1=F ;
И, хотя, эта функция будет создана при входе в контекст исполнения (до выполнения кода функции), всё равно, функция будет так же создана новая - для каждого объекта своя.
Ну я еще могу понять для первого случая с FE, логично: каждый создаваемый объект содержит одельную копию тела метода. Расход памяти , правда, большой.
Но! Как же так получается для второго случая с FD, функция определяется единожды - еще до run-time, но опять каждый объект содержит отдельную копию тела функции ?
Или все же не тела в обоих случаях, а ссылки на одно и тоже тело ?
В чем причина? В ECMA упорно не могу догнать, что написано.


PS
Цитата:
Можно вынести F наружу из конструктора.
Да, я понимаю это. Но не хочется из-за разрущения инкапсуляции.
Ответить с цитированием