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

JavaScript new 연산자란 무엇인가? 개념부터 사용법까지 총정리

JavaScript의 new 연산자란?

JavaScript에서 new 연산자는 사용자가 정의한 객체 타입(user-defined object type)의 새로운 인스턴스를 생성하는 데 사용되는 키워드입니다. 생성자 함수와 함께 호출되면, new 연산자는 빈 객체를 만들고 해당 객체를 생성자 함수에 바인딩한 후, 최종적으로 완성된 객체를 반환합니다.

쉽게 말해, new 연산자는 하나의 설계도(생성자 함수)를 바탕으로 실제로 사용할 수 있는 객체(인스턴스)를 찍어내는 역할을 한다고 이해할 수 있습니다.

기본 문법

new 연산자의 기본적인 사용 형식은 다음과 같습니다.

new constructor[([arguments])]
  • constructor: 객체를 생성할 생성자 함수 또는 내장 객체 생성자(Object, Date, Array 등)
  • arguments: 생성자 함수에 전달할 매개변수 목록 (필요하지 않으면 생략 가능)

new 연산자의 동작 원리

new 연산자가 실행되면 내부적으로 다음 네 단계가 순서대로 진행됩니다.

  1. 새로운 빈 객체({})를 메모리에 생성합니다.
  2. 새 객체의 프로토타입([[Prototype]])을 생성자 함수의 prototype 속성으로 설정합니다.
  3. 생성자 함수를 실행하며 this를 새로 생성된 객체에 바인딩합니다.
  4. 생성자 함수가 명시적으로 객체를 반환하지 않으면, 생성된 객체를 자동으로 반환합니다.

사용 예제

다음 예제는 new 연산자를 활용해 Object 객체의 인스턴스를 생성하고, 여러 속성을 추가한 뒤 화면에 출력하는 방법을 보여줍니다.

<!DOCTYPE html>
<html>
  <body>
    <p id="test"> </p>
    <script>
      // new 연산자로 객체 인스턴스 생성
      var dept = new Object();

      // 객체에 속성 추가
      dept.employee = "David";
      dept.department = "Programming";
      dept.technology = "C++";

      // 결과 출력
      document.getElementById("test").innerHTML =
        dept.employee + " is working on " + dept.technology + " technology.";
    </script>
  </body>
</html>

실행 결과

David is working on C++ technology.

정리

new 연산자는 JavaScript에서 객체 지향 프로그래밍의 핵심 요소 중 하나입니다. 생성자 함수와 함께 사용하면 동일한 구조를 가진 여러 객체를 효율적으로 생성할 수 있으며, ES6에서 도입된 class 문법 역시 내부적으로는 new 연산자와 같은 방식으로 동작합니다. 따라서 new 연산자의 동작 원리를 정확히 이해해 두면 JavaScript의 프로토타입 기반 구조를 더 깊이 있게 파악하는 데 큰 도움이 됩니다.