gf1.set and gf1.get were created within the same call to
makeAccessors, so they see the same x. gf1.set and gf2.set
were created within different calls, so they see different x's.
function makeAccessors() { var x; return {get: function() { return x; }, set: function(y) { x = y; }} }
var gf1 = makeAccessors(); var gf2 = makeAccessors(); gf1.set(10); gf2.set(20); log(gf1.get()); log(gf2.get());