【发布时间】:2018-08-28 14:09:05
【问题描述】:
例如,我有一个代码(带有新功能),它将打开一个警报窗口
new Function`alert(1)`; // Works OK
eval上的代码相同
eval('alert(1)'); // Works OK
但是如果我使用计算:
new Function`2+2`; // not works, shows {}
Eval 工作正常:
eval('2+2'); // Works OK , will be 4
问题:
为什么是代码:
new Function`2+2`;
不工作?
【问题讨论】:
-
你的意思是
new Function("2+2");带括号吗?如果你不使用括号,你实际上并没有调用任何东西。 -
@zero298 错误!这是 es6/7 中的正确代码。使用 ES6/7,你可以调用一个函数,传递一个模板文字。
-
@Megajin 你能显示文档吗?我从未见过使用过的,我在 MDN 文档中找不到它:Template literals
-
@zero298 相关部分是“标记模板”。
标签: javascript function eval calculation ecmascript-2016