The menu code doesn't use prototypes for the menu
objects, meaning that each object has a copy of the
necessary functions, instead of them all sharing a copy
of it. Relevant reference is
http://www.bristowhill.com/doc/javascript/intermediate/ojs.html#prototypes
Credit to Mark Powers for pointing it out and supplying
the reference.