class Foo { var val; property p { getter { return val; } setter(v) { this.val = v; } } function finalize() { System.inform("finalize(): " + this); } } var foo = new Foo(); foo.p = 123; System.inform(foo); System.inform(typeof foo); System.inform(foo.p); // var foo.bar = 'quux'; // can't do this foo.bar = 'quux'; // can dynamically add members System.inform(foo.bar); (function () { System.inform(this.bar); } incontextof foo)(); delete foo.bar; // can dynamically remove members // (function () { // System.inform(this.bar); // } incontextof foo)(); // member not found, exception invalidate foo; // deterministically destroy object (like C++'s delete operator) System.inform(isvalid foo); //=> 0