Skip to content

no-new-func

禁止使用new Function

为什么

在JavaScript中,可以使用Function构造函数在运行时从字符串创建函数,类似于eval函数:

由于这种类型的函数在调试和阅读上的特别困难,此外,内容安全策略(CSP)可能禁止这种语法。

建议

建议使用函数声明或函数表达式来创建函数。

错误示例

js
const foo = new Function('a', 'b', 'return a + b');
const foo = new Function('a', 'b', 'return a + b');

正确示例

js
const foo = function (a, b) {
  return a + b;
};
const foo = function (a, b) {
  return a + b;
};

参考