Code:
/**
* Extends object with another objects properties.
* Author: John Resigs <jeresig[at]gmail.com>
* Modified by: Renato Bebić <renato.bebic[at]gmail.com>
* Modified to distinct prototyped properties and extend
* them to hosts prototype.
* Tested and works on: Firefox 3.5, Chrome 3, Safari 4
*
* @param object to extend with
*/
Object.prototype.extend = function( object ) {
var property, getter, setter, target;
for ( property in object ) {
getter = object.__lookupGetter__( property );
setter = object.__lookupSetter__( property );
target = object.hasOwnProperty( property ) ? this : this.__proto__;
if ( getter )
target.__defineGetter__( property, getter );
else if ( setter )
target.__defineSetter__( property, setter );
else
target[ property ] = object[ property ];
}
};