학습 공간 개념 · 판단 · 실험

Fanta Lab

질문 4 · 실전 면접 답변

생성자와 new 호출은 객체를 어떻게 만드나요?

이렇게 답해 보세요 (핵심 답변)

생성자는 new 연산자와 함께 호출해 새 인스턴스 객체를 만드는 함수입니다. 함수를 new로 호출하면 먼저 빈 객체가 생성되고, 그 객체의 내부 프로토타입이 생성자 함수의 prototype 프로퍼티에 연결된 뒤 생성자 본문이 그 객체를 this로 삼아 실행됩니다. 만약 생성자에서 별도의 객체를 명시적으로 반환하지 않으면 방금 초기화된 새 객체가 최종 반환값이 되며, class 문법의 constructor도 같은 프로토타입 기반 위에서 동작하지만 반드시 new와 함께 호출해야 합니다.

함께 설명하면 좋은 이유 (꼬리질문 대비)

  1. 인스턴스들이 공통으로 사용할 메서드를 생성자의 prototype에 정의하면 메모리와 동작을 효율적으로 공유할 수 있습니다.
  2. 화살표 함수는 생성자로 사용할 수 없으므로 JavaScript의 모든 함수에 new를 붙일 수 있는 것은 아닙니다.

면접에서 자주 하는 실수

생성자 함수의 prototype 프로퍼티와 개별 인스턴스 객체가 가지는 내부 [[Prototype]] 연결을 같은 것으로 혼동하지 않아야 합니다.

원리와 예제까지 읽기

공식 참고 자료

질문 목록 출처 ↗ · 원본 4번을 바탕으로 질문과 답변을 새로 정리했습니다.

← JavaScript