8. ENCAPSULATION
Wrapping up of data & methods of a class & its parent classes into
a single unit is called encapsulation.
In the previous example, Square does not need to know how the
Rectangle class's calculateArea() method is implemented, but still
can use that method; the Square class doesn't need to explicitly
define that method unless we want to change it.
9. ABSTRACTION
Abstraction is a technique for managing complexity. Its the way we
hide the methods & properties from child class.
Square class does not need to know about calculateArea method
of Rectangle class, its absractions.
10. POLYMORPHISM
Just as all methods and properties are defined inside the prototype
property, different classes can define methods with the same
name.