Many developers cast off JS as a suitable OOP language because they are so used to the class style of C# and Java. Many people don't realize that JavaScript supports inheritance. When you write object-oriented code it instantly gives you power; you can write code that can be re-used and that is encapsulated. It includes functions and objects, prototype based programming, class based-prototype based, some hacks and exercises. The tutorial begins with a section about function and objects which includes a simple JS function, closures as one of the most powerful weapons for JS ninja, object as it is almost everything for a JS ninja, call and apply methods defined under functions. The function section is followed by the prototype section which includes a brief on class based vs prototype based. After this comes the hack section. It includes some hacks like appending new array to another array, swap variable values and many more. The last section of this tutorial is on exercises which includes some basic exercises like implementing basic inheritance, add forEach method, implement a function.