Examples of various OOP-ish type object patterns in Javascript