-2
在下面的JavaScript代码,新的使用了两次,但它不是一个错误:为什么在这里再次调用new有效?
function Foo(i) {
this.i = i;
}
Foo.specialConstructor = function() {
return new Foo(1337);
};
foo = new Foo.specialConstructor();
console.log(foo.i);
但是,下面的代码会导致Uncaught TypeError: object is not a function
:
foo = new (new Foo(1337));
为什么第二种情况会导致在第一个没有按错误“T?
试试'new(Foo.specialConstructor())'来看看你的'new(Foo.specialConstructor)()')的区别。 – Bergi