Prototypes

Every Java-
Script object has a second JavaScript object (or null, but this
is rare) associated with it. This second object is known as a
prototype, and the first object inherits properties from the
prototype.
All objects created by object literals have the same prototype
object, and we can refer to this prototype object in JavaScript
code as Object.prototype. Objects created using the new keyword
and a constructor invocation use the value of the proto
type property of the constructor function as their prototype.
So the object created by new Object() inherits from Object.pro
totype just as the object created by {} does. Similarly, the object
created by new Array() uses Array.prototype as its prototype,
and the object created by new Date() uses Date.prototype as its
prototype.
Object.prototype is one of the rare objects that has no prototype:
it does not inherit any properties. Other prototype objects
are normal objects that do have a prototype. All of the built-in
constructors (and most user-defined constructors) have a prototype
that inherits from Object.prototype.

Object.create() is a static function, not a method invoked on
individual objects. To use it, simply pass the desired prototype
object:
// o1 inherits properties x and y.
var o1 = Object.create({x:1, y:2});