Eslint
规则 | Rules

no-new-func

禁止函数构造函数(no-new-func)

可以使用Function构造函数在 JavaScrip t中创建函数,例如:

var x = new Function("a", "b", "return a + b"

由于难以调试和阅读这些类型的功能,许多人认为这是一种不好的做法。

规则细节

提出这个错误是为了强调使用不好的做法。通过将一个字符串传递给 Function 构造函数,您需要引擎在调用eval函数时以很大的方式解析该字符串。

这个规则的错误代码示例:

/*eslint no-new-func: "error"*/ var x = new Function("a", "b", "return a + b" var x = Function("a", "b", "return a + b"

这个规则的正确代码示例:

/*eslint no-new-func: "error"*/ var x = function (a, b) { return a + b; };

何时不使用它

在更高级的情况下,你真的需要使用Function构造函数。

版本

这个规则在 ESLint 0.0.7中引入。

资源