eslint/no-new-func 스타일
작동 방식
Function 객체와 함께 new 연산자를 사용하는 것을 금지합니다.
왜 좋지 않은가?
new Function 또는 Function를 사용하면 이해하기 어렵고 유지보수가 어려운 코드로 이어질 수 있습니다. 문자열 형태의 코드로부터 새로운 함수를 생성하므로, eval과 유사한 보안 위험이 발생할 수 있으며, 주입 공격의 경로가 될 수 있습니다. 또한 이 함수들은 자바스크립트 엔진에서 최적화되지 않기 때문에 성능에 부정적인 영향을 미칩니다.
예시
이 규칙에 부적절한 코드 예시:
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;
};사용 방법
구성 파일 또는 명령줄 인터페이스에서 이 규칙을 활성화하려면 다음을 사용할 수 있습니다:
json
{
"rules": {
"no-new-func": "error"
}
}bash
oxlint --deny no-new-func