Javascript using object literals and object defaults and constructor methods.
Update code to use JavaScript prototype objects instead of object literals.
Update with ECMAScript6 objects for comparision.