모던 자바스크립트 Deep Dive 자바스크립트의 기본 개념과 동작 원리를 읽고 정리한 내용입니다.
17.1 생성자 함수에 의한 객체 생성
- 생성자 함수는 new 연산자와 함께 호출하여 객체 (인스턴스)를 생성하는 함수를 말한다.
- 생성자 함수에 의해 생성된 객체를 인스턴스라 한다.
17.2.3 생성자 함수의 인스턴스 생성 과정
- 인스턴스를 생성하고 생성된 인스턴스를 초기화 (인스턴스 프로퍼티 추가 및 초기값 할당)하는 것이다.
- 바인딩이란 식별자와 값을 연결하는 과정을 의미한다. 변수 이름(식별자)와 확보된 메모리 공간의 주소를 바인딩하는것이다. this가 가리킬 객체를 바인딩하는 것도 바인딩의 예이다.
17.2.4 내부 메서드 [[Call]]과 [[Construct]]
- function foo() { //일반적인 함수로서 호출, [[Call]]이 호출된다. foo(); //생성자 함수로서 호출, [[Construct]]가 호출된다. new foo(); }
- constructor은 함수 선언문, 함수 표현식, 클래스이다.
- non-constructor은 메서드, 화살표 함수이다.
17.2.7 new.target
- new 연산자와 함께 생성자 함수로서 호출되면 함수 내부의 new.target은 함수 자신을 가리킨다. new 연산자 없이 일반 함수로서 호출된 함수 내부의 new.target은 undefined이다.
- Object와 function 생성자 함수는 new 연산자 없이 호출해도 new 연산자와 함께 호출했을 때와 동일하게 동작한다.
'Language > JavaScript' 카테고리의 다른 글
Javascript 네임스페이스 패턴(Namespace Pattern) (0) | 2023.01.10 |
---|---|
JavaScript 09. 함수와 일급 객체 (0) | 2022.09.17 |
JavaScript 07. 프로퍼티 어트리뷰트 (0) | 2022.09.12 |
JavaScript 06. 스코프 (2) | 2022.08.31 |
JavaScript 05. 함수 (0) | 2022.08.28 |