制作一个javascript函数,它返回它自己的实例

时间:2017-05-03 01:17:56

标签: javascript instanceof single-instance

在Javascript中,是否可以将函数Foo()设为 {/ em> (Foo() == Foo)(Foo() instanceof Foo)

这几乎有效:

function Foo() { Object.setPrototypeOf(Foo,this); return Foo; }

在这种情况下new Foo() instanceof Foo,但如果我只是在没有Foo的情况下致电new,则无效。

1 个答案:

答案 0 :(得分:3)

你需要做

function Foo() { return Foo; }             // Foo() === Foo
Object.setPrototypeOf(Foo, Foo.prototype); // Foo instanceof Foo

请注意a instanceof B等同于B.prototype.isPrototypeOf(a)