Practical Closure
by Shane Porter
JavaScript
function createStore() {
// "private"
var data = {};
return function(key, val) {
return val === undefined
? data[key] // we are getting
: data[key] = val; // we are setting
};
}
var store = createStore();
console.log('get foo:', store('foo'));
console.log('set foo:', store('foo', 'bar'));
console.log('get foo:', store('foo'));
console.log('store data?', store.data);