질문 4 · 실전 면접 답변
생성자와 new 호출은 객체를 어떻게 만드나요?
이렇게 답해 보세요 (핵심 답변)
생성자는 new 연산자와 함께 호출해 새 인스턴스 객체를 만드는 함수입니다. 함수를 new로 호출하면 먼저 빈 객체가 생성되고, 그 객체의 내부 프로토타입이 생성자 함수의 prototype 프로퍼티에 연결된 뒤 생성자 본문이 그 객체를 this로 삼아 실행됩니다. 만약 생성자에서 별도의 객체를 명시적으로 반환하지 않으면 방금 초기화된 새 객체가 최종 반환값이 되며, class 문법의 constructor도 같은 프로토타입 기반 위에서 동작하지만 반드시 new와 함께 호출해야 합니다.
함께 설명하면 좋은 이유 (꼬리질문 대비)
- 인스턴스들이 공통으로 사용할 메서드를 생성자의 prototype에 정의하면 메모리와 동작을 효율적으로 공유할 수 있습니다.
- 화살표 함수는 생성자로 사용할 수 없으므로 JavaScript의 모든 함수에 new를 붙일 수 있는 것은 아닙니다.
면접에서 자주 하는 실수
생성자 함수의 prototype 프로퍼티와 개별 인스턴스 객체가 가지는 내부 [[Prototype]] 연결을 같은 것으로 혼동하지 않아야 합니다.
원리와 예제까지 읽기
공식 참고 자료
질문 목록 출처 ↗ · 원본 4번을 바탕으로 질문과 답변을 새로 정리했습니다.