Вложенные и анонимные функции.
Хочу разобраться как работает GC с вложенными и анонимными функциями.
Например, вот в этот листинг http://pastie.org/780300 демонстрирует, как анонимная функция просто подвисает в памяти. Вообще, удаляются ли анонимные функции из памяти? А вложенные? |
Этот пример не демонстрирует того, что функция "подвисает в памяти".
GC съест их по-любому, если не останется ни одной ссылки на эти функции (хочется верить в GC). В этом примере показывается, что при создании функции, в которой используются локальные переменные текущей области видимости (даже не текущей, а той области видимости, из которой потом не должно быть видно этих переменных), локальные переменные становятся как бы глобальными переменными для этой функции - сумбурно описал, еще это называется "замыкание". Замыкание нередко используется в языка программирования JavaScript, perl... в ActioScript из-за "кривой" реализации "замыканиев", везде советуют не пользоваться данным методом. |
terbooter, а сам проверял? Попробуй, может они уничтожаться как локальные переменные.
|
Я конечно понимаю, что истина дороже, но дались вам эти анонимные функции? Во ФД Ctrl+Shift+1 и нет проблем. Лучше читаемость кода, лучше масштабируемость, лучше типизация. ЗАЧЕМ?
|
А разве Блуд не рассказывал про анонимные функции? Кто-то еще не понял?
|
А разве в поиске мало тех тем, где люди спрашивают про анонимные функции?
|
Цитата:
Я давно хочу изучить вопрос об анонимных функциях как параметр, например, в Array#filter, т.к. для тестов пользуюсь. Достаточно удобно, будет здорово, если безболезненно такое можно пускать в продакшн. |
Цитата:
|
Пришлось разбирать код на javaScript..
ребята - это упитанный пушистый белый, но не заяц. ненавижу js и php - это хуже чем код в кадрах. PS. А анонимные функции - зло, как и php c js Мне нужно было отловить событие window.onLoad и добавить свои обработчики. короче - я сделал свою реализацию событий, потом её применил.. в итоге - смотрите в подписи |
Согласен, анонимные функции зло злейшее. (JS - да, тоже не люблю, но ПХП не так уж плох)
Термин замыкание избегаю сознательно, чтобы не вводить путаницу. Просто сейчас я работаю в большом проекте и у меня нет выбора, кроме как полностью разобраться с замыканиями. |
Часовой пояс GMT +4, время: 23:12. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.