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中引入。