From Mozilla: An overview of the object-oriented capabilities of JavaScript. This covers OO concepts of classes and objects, instances, abstraction, encapsulation and polymorphism as done in JavaScript with functions and prototypal inheritance.
Tim describes another two different approaches to using the Module Pattern (a way of creating Singletons). The first example takes advantage of the natural indentation to clearly see which methods are private and which are public. The second is a curried function, a function that returns another function.
Although JavaScript is a class-free, object-oriented language using prototypal inheritance, it can still be used in a classical object-oriented way. Douglas Crockford compares the two inheritance-based systems, adding syntactic sugar to JavaScript to allow classical inheritance, and demonstrates a number of patterns that are not available in classical languages.