Я читал о замыканиях, и я наткнулся на этот пример:
var counter = (function() {
var privateCounter = 0;
function changeBy(val) {
privateCounter += val;
}
return {
increment: function() {
changeBy(1);
}
};
})();
Таким образом, замыкание в основном:
Замыкание - это комбинация функции, объединенной вместе (прилагается) со ссылками на его окружающее состояние (лексическое окружение).
Хорошо, пока все хорошо. Но в следующем примере у нас нет функций, связанных вместе, но возвращаемый объект сохраняет ссылку на privateCounter.
Можем ли мы считать это также своего рода закрытием?
var counter = (function() {
var privateCounter = { name: "nick" };
return {
name: privateCounter
};
})();