vertical-align: top
Реализация замыканий
Понять суть замыканий будет совсем несложно, если усвоить правило лек-
сической области видимости: во время выполнения функции используется
цепочка областей видимости, которая действовала в момент ее определе-
ния. Однако некоторые программисты испытывают сложности при освое-
нии замыканий, потому что не до конца понимают особенности реализа-
ции. Известно, думают они, что локальные переменные, объявленные во
внешней функции, прекращают свое существование после выхода из внеш-
ней функции, но тогда как вложенная функция может использовать цепоч-
ку областей видимости, которая больше не существует? Если вы задавали
себе такой вопрос, значит, у вас наверняка есть опыт работы с низкоуров-
невыми языками программирования, такими как C, и аппаратными архи-
тектурами, использующими стек: если локальные переменные размещать
на стеке, они действительно прекращают свое существование после завер-
шения функции.
Но вспомните определение цепочки областей видимости из раздела 3.10.3.
Там она описывалась как список объектов, а не стек. Каждый раз, когда
интерпретатор JavaScript вызывает функцию, он создает новый объект для
хранения локальных переменных этой функции, и этот объект добавляет-
ся в цепочку областей видимости. Когда функция возвращает управление,
этот объект удаляется из цепочки. Если в программе нет вложенных функ-
ций и нет ссылок на этот объект, он будет утилизирован сборщиком мусо-
ра. Если в программе имеются вложенные функции, тогда каждая из этих
функций будет владеть ссылкой на свою цепочку областей видимости, а це-
почка будет ссылаться на объекты с локальными переменными. Если объ-
екты вложенных функций существуют только в пределах своих внешних
функций, они сами будут утилизированы сборщиком мусора, а вместе
с ними будут утилизированы и объекты с локальными переменными, на
которые они ссылались. Но если функция определяет вложенную функ-
цию и возвращает ее или сохраняет в свойстве какого-либо объекта, то об-
разуется внешняя ссылка на вложенную функцию. Такой объект вложен-
ной функции не будет утилизирован сборщиком мусора, и точно так же не
будет утилизирован объект с локальными переменными, на который она
ссылается.
Юзаем domain http://habrahabr.ru/post/147233/
Вообще специфика обработки на ноде это callback(error, data) где в колбек улетает ошибка
adb forward <local> <remote> - forward socket connections
forward specs are one of:
tcp:<port>
localabstract:<unix domain socket name>
localreserved:<unix domain socket name>
localfilesystem:<unix domain socket name>
dev:<character device name>
jdwp:<process pid> (remote only)