Я изучаю javascript и наткнулся на следующий фрагмент кода:
var outerValue = true;
function outerFn(){
assert( outerFn && outerValue, "These come from the closure." );
}
Поскольку я понимаю замыкания в вышеприведенном контексте, они позволяют externalFn фактически видеть переменную externalValue.
Мой вопрос: чем он отличается от любого другого языка программирования, например, например, Java? Ожидается, что область видимости externalValue позволит externalFn увидеть его.
добавлено позже:
var outerValue = true;
function outerFn() {
console.log(outerValue);
}
function anotherFunction(arg){
console.log("anotherFunction");
arg.call(this);
}
anotherFunction(outerFn);
Это лучший пример закрытия?