1. http://bonsaiden.github.com/JavaScript-Garden/#prototype
Bar.prototype = new Foo();
So when you create a new instance of Bar, it's constructor still appears to be Foo even though it really isn't. Setting the prototype.constructor fixes that.
1. http://bonsaiden.github.com/JavaScript-Garden/#prototype