code: function extend( obj, var_args ) {
          for ( var i = 1; i < arguments.length ; i += 1 ) {
              var other = arguments[ i ];
              for ( var p in other ) {
                  var v = Object.getOwnPropertyDescriptor( other, p );
                  if ( typeof v == "undefined" || typeof v.value == "undefined" ) {
                      delete obj[ p ];
                  } else {
                      Object.defineProperty( obj, p, v );
                  }
              }
          }
          return obj;
      }
docs: helper function for extending objects