Foo.prototype = {}するとconstructorがObjectになる
function Foo() {} Foo.prototype.a = 'b'; var foo = new Foo; console.log(foo.constructor.name); // => Foo
これでコンストラクタとれるんだけど、こうするとダメ。
function Foo() {} Foo.prototype = { a: 'b' }; var foo = new Foo; console.log(foo.constructor.name); // => Object
Foo.prototype.constructorを上書きしちゃうから。
ちなみにjQueryはこうなってる。
jQuery.fn = jQuery.prototype = { constructor: jQuery, ... }