所以可以用一个匿名构造函数来创建一个匿名对象:new function() { ... }
我甚至查不到相关的说法,只看到有一个 stackoverflow 问题: https://stackoverflow.com/questions/40096704/new-function-vs-new-function
然后,会发生什么事情呢,调用了 bind()函数绑定了 this 值的函数也可以用一个新的空对象去调用,本来连 apply 和 call 都无法更改 this 值的:
function test() { console.log('调用 test()函数, this 值是:', this); } test = test.bind({ a: 1 }); test(); new test(); 真的太容易混淆了吧:
typeof Function 'function' typeof function() {} 'function' typeof new Function 'function' typeof new function() {} 'object' 