|
|
|||||
Вложенные и анонимные функции.
Хочу разобраться как работает GC с вложенными и анонимными функциями.
Например, вот в этот листинг http://pastie.org/780300 демонстрирует, как анонимная функция просто подвисает в памяти. Вообще, удаляются ли анонимные функции из памяти? А вложенные?
__________________
Сам себе репортер |
|
|||||
Этот пример не демонстрирует того, что функция "подвисает в памяти".
GC съест их по-любому, если не останется ни одной ссылки на эти функции (хочется верить в GC). В этом примере показывается, что при создании функции, в которой используются локальные переменные текущей области видимости (даже не текущей, а той области видимости, из которой потом не должно быть видно этих переменных), локальные переменные становятся как бы глобальными переменными для этой функции - сумбурно описал, еще это называется "замыкание". Замыкание нередко используется в языка программирования JavaScript, perl... в ActioScript из-за "кривой" реализации "замыканиев", везде советуют не пользоваться данным методом. |
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
terbooter, а сам проверял? Попробуй, может они уничтожаться как локальные переменные.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
Я конечно понимаю, что истина дороже, но дались вам эти анонимные функции? Во ФД Ctrl+Shift+1 и нет проблем. Лучше читаемость кода, лучше масштабируемость, лучше типизация. ЗАЧЕМ?
__________________
Ну все, теперь Забава м-о-я. Гы-гы, а корабль мой! |
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
Цитата:
Я давно хочу изучить вопрос об анонимных функциях как параметр, например, в Array#filter, т.к. для тестов пользуюсь. Достаточно удобно, будет здорово, если безболезненно такое можно пускать в продакшн.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
.
|
Можно было более высокопарно "лямбда-замыкания", чего постеснялся? В чем тут неразбериха? Молоко стало вкуснее и шИколаднее, из-за того, что корова стала альпийской?
|
|
|||||
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
Пришлось разбирать код на javaScript..
ребята - это упитанный пушистый белый, но не заяц. ненавижу js и php - это хуже чем код в кадрах. PS. А анонимные функции - зло, как и php c js Мне нужно было отловить событие window.onLoad и добавить свои обработчики. короче - я сделал свою реализацию событий, потом её применил.. в итоге - смотрите в подписи
__________________
Отряд Котовскага Последний раз редактировалось Котяра; 12.02.2011 в 05:23. |
|
|||||
Согласен, анонимные функции зло злейшее. (JS - да, тоже не люблю, но ПХП не так уж плох)
Термин замыкание избегаю сознательно, чтобы не вводить путаницу. Просто сейчас я работаю в большом проекте и у меня нет выбора, кроме как полностью разобраться с замыканиями.
__________________
Сам себе репортер |
Часовой пояс GMT +4, время: 07:22. |
|
« Предыдущая тема | Следующая тема » |
|
|