27.03.2008

JavaScript: Closure

На русский closure обычно переводят как «замыкание».

John Resig в своей книге Pro JavaScript Techniques, которую я сейчас читаю, привел ссылку на статью JavaScript Closures. Это очень мощная, пожалуй, самая глубокая и фундаментальная статья по JavaScript, которую я когда-либо читал. Респект автору, Ричарду Корнфорду.

Стал копать дальше, нашел еще замечательную статью: JavaScript Closures for Dummies. Написано очень понятно, с хорошими примерами. Рекомендую начать с этой статьи, если вы только осваиваете closure. Отдельно отметим оригинальную находку автора поместить кусочек JavaScript-кода на кнопку, который этот код запускает.

Также достойны вашего внимания еще две статьи о closure: на Википедии и Мартина Фаулера. В этих статьях речь идет о closure вообще как о концепции программирования, безотносительно к JavaScript.

Что касается книги Ресига, то я несколько разочарован. Материал изложен поверхностно, не хватает глубины как в статье Корнфорда. Много опечаток и ошибок. Как раз в одном из примеров на closure есть концептуальная ошибка, пример не работает. Не понятно как так можно, что он, не оттестировал примеры перед публикацией что-ли?

UPD: Ошибка в примере на closure (листинг 2-16) есть только в исходном коде, который можно скачать с сайта книги. В самой книге этой ошибки нет.

Жду книгу Дугласа Крокфорда. Надеюсь, старина Крокфорд не подведет :-)

4 комментария:

Cake_Seller комментирует...

Спасибо за ссылочки. Сам сейчас читаю книгу "JavaScript: The Definitive Guide, 5th Edition" Девила Фленегана, и всё никак не могу догнать что скрывается под словом closure. Надеюсь информация за ссылками немного прояснит ситуацию.

Кстати, указанную выше книгу очень рекомендую.

Stepan комментирует...

Рекомендую посмотреть лекции Дугласа Крокфорда:

http://developer.yahoo.com/yui/theater/

* The JavaScript Programming Language
* An Inconvenient API: The Theory of the DOM
* Advanced JavaScript
ну и потом все остальные

В какой-то из лекций Дуглас очень доходчиво объяснял про closure.

Dzyanis Kuzyakin комментирует...

Для таких лузеров как я, русская версия про замыкание http://javascript.ru/tags/closure

night-fairy-tales комментирует...

Интересная заметка, как раз искал инфу по этой теме.