With ECMAScript 5 we have Object.defineProperty, which allows us to describe how a property should respond to some actions. One of the possibilites from this is to disable enumeration of properties, so they won’t show up in for...in loops. For example the length property of arrays is not enumerable.
Is it possible to do something similar without ECMAScript 5?
It’s not possibel to create non-enumerable properties in ECMA-262 ed 3, but you can emulate private members.