In this section, we're going to focus on the following:
- how Javascript's prototype based objects work
- building up functionality through pseudo-classical inheritance via constructor functions and the prototype chain
- and a simpler, more idiomatic way to build up functionality using composition, delegation and mixins.