Всё-таки у меня есть сомнения насчёт того, что "closure" следует переводить как "сокрытие". Слово "hide" здесь может не причём. Но и не "замыкание".
Попробуем изобразить, что такое "closure", на таком примере:
function A()
{
var hi="Hello"
return function() { var name="Earl"; alert(hi+" "+name) }
}
var a = A()
a()
Итак, "closure", котрое находится в "a" выдаёт нам переменную из
своей внешней функции полюс свою локальную переменную.
На рисунке "closure" обозначено пунктирной линией.
"Closure" - это локальные переменные плюс внешние переменные анонимной функции
в "А".
Статья на Wikipedia Closure
отсылает нас к модели актёра, в которой говориться, что "если актёр имеет адрес одного из других актёров, то они состоят в знакомстве.
Ага! А наше "closure" имеет ссылки на переменные внешней функции, значит анонимная функция знакома с внешней функцией. А "close" - это близкий. Может "closure" корректней переводить как "приближение" или "близость"?
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий