我正在阅读 Airbnb JavaScript Style Guide,看到了此处提到的以下函数:
var subtract = Function('a', 'b', 'return a - b');
我在Chrome调试器控制台中测试过这个方法,只需要输入上述一行代码并执行:
subtract(7,3)
它返回了4
,我非常惊讶它实际上起作用了。
样式指南提到不建议这样做,但这让我思考这个函数语法。我从未见过一个没有主体的函数返回正确的结果。
这是如何/为什么工作的?它存在多久了?使用它的指南/最佳实践是什么?
functionBody
;请参阅 https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Function。 - guest271314Function
时所做的那样,在遵循CSP的前提下将其编码。 - dandavisnew Function(...)
。 - mferlynew
,实际上,它不会像通常导致的new
一样产生一个对象,所以省略它不应该让你发疯 ;) - dandavisnew Function()
才是实际语法。不过无论如何都可以工作。 - mferly