eslint/no-new-func 樣式
作用
此規則禁止對 `Function` 物件使用 `new` 運算符。
為什麼這樣不好?
使用 `new Function` 或 `Function` 可能導致程式碼難以理解和維護。 它可能會引入類似於 `eval` 的安全性風險,因為它會從程式碼字串產生新的函式,這可能成為注入攻擊的途徑。此外,由於這些函式未經 JavaScript 引擎最佳化,因此會對效能產生負面影響。
範例
此規則的不正確程式碼範例
js
var x = new Function("a", "b", "return a + b");
var x = Function("a", "b", "return a + b");
var x = Function.call(null, "a", "b", "return a + b");
var x = Function.apply(null, ["a", "b", "return a + b"]);
var x = Function.bind(null, "a", "b", "return a + b")();
var f = Function.bind(null, "a", "b", "return a + b");
此規則的正確程式碼範例
js
let x = function (a, b) {
return a + b;
};