This document provides an introduction to object oriented JavaScript. It covers key concepts like functions, objects, prototypes, inheritance, callbacks, and asynchronous programming. Functions are first class citizens that can be treated like variables. Objects can be created using constructors, literals, or built-in methods. Prototypes allow objects to inherit properties and are used with constructor functions for inheritance. Callbacks allow JavaScript to handle asynchronous operations without blocking, while patterns like promises help avoid callback hell with multiple nested async operations.