Demonstrates use of the module design pattern to leverage closures for privacy. Shows a decent way of achieving prototype-based constructor chains for inheritance -- also explains how the .call(...) function plays a crucial role there. Uses the logical OR to assign default values unless otherwise specified.
Forked from Reesington's Pen JS OOP Template.