Chapter 2 - Object-Oriented Javascript
Example 6 - Changing the reference of an object while maintaining integrity