Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript의 Function() 생성자란? 개념부터 예제까지 쉽게 배우기

Function() 생성자란?

JavaScript에서 Function() 생성자는 새로운 함수 객체를 동적으로 생성하는 데 사용됩니다. 이 생성자를 통해 만들어진 함수는 전달된 문자열이 런타임 시점에 파싱(해석)되어 실제 함수로 변환됩니다.

Function() 생성자의 인수 구조는 다음과 같습니다. 마지막 인수는 항상 함수 본문(body)이 되며, 그 앞에 오는 인수들은 순서대로 함수의 매개변수 이름으로 지정됩니다.

예제

다음 코드를 직접 실행해 보면서 Function() 생성자를 활용하는 방법을 익혀보세요. 세 개의 매개변수를 곱하는 함수를 동적으로 생성한 뒤 호출하는 간단한 예제입니다.

라이브 데모

<html>
   <body>
      <script>
         var num = new Function('p', 'q', 'r', 'return p * q * r');
         document.write("Value after multiplication: "+num(5, 2, 9));
      </script>
   </body>
</html>

위 코드를 실행하면 num(5, 2, 9)의 계산 결과인 90이 출력됩니다. 즉, 문자열로 정의한 로직이 실제 동작하는 함수로 만들어진 것입니다.

참고 사항

Function() 생성자는 함수 본문을 문자열로 받아 해석하기 때문에 eval()과 유사한 방식으로 동작합니다. 이로 인해 보안 취약점(XSS 등)이 발생할 수 있고, 코드를 매번 파싱해야 하므로 성능 면에서도 불리합니다. 따라서 특별한 이유가 없다면 일반적인 상황에서는 function 키워드나 화살표 함수(=>)를 사용하는 것이 권장됩니다.