所以可以用一个匿名构造函数来创建一个匿名对象: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'
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.