/// `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());