Examples of Object Oriented Design patterns in JavaScript