Показать сообщение отдельно
  #5 (permalink)  
Старый 05.03.2010, 12:02
Аватар для Shaci
:-/
Отправить личное сообщение для Shaci Посмотреть профиль Найти все сообщения от Shaci
 
Регистрация: 28.09.2009
Сообщений: 1,126

Сообщение от Kolyaj Посмотреть сообщение
Это вы кэширование this в локальной переменной замыканием назвали?
Ну вообще говоря, да
Хотя, если по чесноку, то тут после вызова внешней функции , сохраняется её объект вызова, во внутреннюю ф-цию
"передается ссылка на объект с локальными переменными [[scope]] внешней функции", т.е. внутренняя ф-ция теперь может в любой момент через этот объект получить локальные переменные внешней ф-ции, т.е. current.

Сообщение от micscr Посмотреть сообщение
1-ый пример:
var current = this;

2-ой пример(твой):
this.tagName

т.е. указывают на один и тот же объект.
Этот пример из книги просто чтобы продемонстрировать что такое замыкание.
просто пример такой, что из него не видно логики использования замыкания, т.к. можно и без него обойтись

Сообщение от Kolyaj Посмотреть сообщение
А, ну у вас просто совпало, что в обоих контекстах this указывает на один и тот же объект. А так бы ваш вариант не работал.
угу
Ответить с цитированием