Комментарии 11
Ни одна из этих трех статей не раскрывает тему внутренней реализации достаточно глубоко.
Большинство статей по запросу «замыкания javascript» объясняет как работают замыкания с точки зрения «пользователя» (программиста), то есть просто даются утверждения о механике, но не объясняется почему это именно так работает в JS. Конечно, чаще всего и нет такой цели, так что все ок.
Большинство статей по запросу «замыкания javascript» объясняет как работают замыкания с точки зрения «пользователя» (программиста), то есть просто даются утверждения о механике, но не объясняется почему это именно так работает в JS. Конечно, чаще всего и нет такой цели, так что все ок.
Вот тут github.com/getify/You-Dont-Know-JS/tree/master/scope%20%26%20closures про внутренности более подробно написано.
Если пройти туториал make-a-lisp, то имплементация замыканий будет очевидной :)
Ничего себе, freetonik перевел мою статью. Спасибо!
Извините уж, ребята, что сам не добрался.
Извините уж, ребята, что сам не добрался.
Есть одна смысловая неточность в переводе:
Выделенный курсивом текст — это не то, что я имел в виду: But what if we define nested function and return it (or store somewhere outside)?
Т.е. я имел в виду следующее:
С момента, когда функция возвращает значение, больше никто не обращается к его scope-объекту, поэтому его собирает сборщик мусора. Но что если определить вложенную функцию, вызвать ее и дождаться возвращения?
Выделенный курсивом текст — это не то, что я имел в виду: But what if we define nested function and return it (or store somewhere outside)?
Т.е. я имел в виду следующее:
Но что если определить вложенную функцию и вернуть ее (или сохранить где-то вне текущего scope-объекта)?
Есть статья о ядре JavaScript, в которой так же очень подробно описываются замыкания и многое другое:
http://dmitrysoshnikov.com/ecmascript/ru-javascript-the-core/.
http://dmitrysoshnikov.com/ecmascript/ru-javascript-the-core/.
В своё время, с пониманием как работают замыкания под капотом, очень помог труд Nicholas C. Zakas JavaScript for Web Developers.
Огромное спасибо Дмитрию за статью и Рахиму за перевод. На мой взгляд, замыкания — одна из самых сложных тем для начинающих разработчиков JS. Когда обычно встречаешь рассказ о замыканиях, там не объясняется, почему они работают так, а не иначе, из-за этого сложно себе всё уяснить. Статья раскладывает всё аккуратно по полочкам.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Как работают замыкания (под капотом) в JavaScript