А еще больше не боюсь добавлять новые свойства в прототипы встроенных конструкторов (даже Object) благодаря defineProperty:
Object.defineProperty( Object.prototype, 'define', {
value: function( key, descriptor ) {
if( descriptor ) {
Object.defineProperty( this, key, descriptor );
} else {
Object.defineProperties( this, key );
}
},
enumerable: false
});
var o = {};
o.define('a', {get: function() { return 'ok' } });
alert(o.a)