制作一个 javascript 函数 returns 本身,它是自身的一个实例

Making a javascript function that returns itself where it is an instance of itself

在 Javascript 中,是否有可能使函数 Foo() 使得 (Foo() == Foo)(Foo() instanceof Foo)

这几乎可以工作:

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

所以 new Foo() instanceof Foo 在这种情况下,但是如果我只调用 Foo 而没有 new,它不起作用。

你需要做

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

记住 a instanceof B 等同于 B.prototype.isPrototypeOf(a)