読者です 読者をやめる 読者になる 読者になる

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,
    ...
}