Вот мой вклад как программиста JavaScript:
Замыкание - это функция, которая имеет доступ к переменным, определенным в ее лексической области видимости (область, которая может больше не присутствовать, когда замыкание фактически вызывается). Здесь:
function funktionFactory(context) {
// this is the lexical scope of the following anonymous function
return function() {
// do things with context
}
}
Как только funktionFactory
вернуло, лексическая область видимости исчезла навсегда, НО (и это большое "но"), если на возвращаемую функцию все еще ссылаются (и, следовательно, не собирают мусор), то такая функция (замыкание) все еще может играть с исходной переменной context
. Здесь:
var closure = funktionFactory({
name: "foo"
});
никто, кроме closure
, не может получить доступ к свойству name
объекта контекста (недоступно для любой другой сущности в программном обеспечении после возврата funktionFactory
).
Итак, чтобы ответить на ваш вопрос: func
закрытие? Нету. И callback
? ни!