동그란 도그린
[모던 자바스크립트 Deep Dive🦎] 17장 : 생성자 함수에 의한 객체 생성 본문
📍 Object 생성자 함수
- new 연산자와 함께 Object 생성자 함수를 호출하면 빈 객체를 생성하여 반환
- 🔅 생성자 함수 : new 연산자와 함께 호출, 객체(인스턴스)를 생성하는 함수
📍 생성자 함수
- 객체 리터럴에 의한 객체 생성 방식은 단 하나의 객체만 생성 ⇒ 동일한 프로퍼티를 갖는 객체를 여러개 생성해야 하는 경우에는 매번 같은 프로퍼티를 기술해야 함 ⇒ 비효율적
- 생성자 함수에 의한 객체 생성 방식은 객체 생성 템플릿(클래스)처럼 생성자 함수를 사용하여 프로퍼티 구조가 동일한 객체 여러 개를 간편하게 생성 가능
- 🔅 this : 객체 자신의 프로퍼티나 메서드를 참조하기 위한 자기 참조 변수
- new 연산자와 함께 생성자 함수를 호출하지 않으면 생성자 함수가 아니라 일반 함수로 동작
- 생성자 함수가 인스턴스를 생성하는 건 필수이지만, 생성된 인스턴스를 초기화하는 것은 옵션
- 암묵적으로 생성된 빈 객체(인스턴스) this에 바인딩됨
- 🔅 바인딩 : 식별자와 값을 연결하는 과정, this 바인딩이란 this와 this가 가리킬 객체를 바인딩하는 것
- 함수는 개체이지만 일반 객체와 다름
- 일반 객체는 호출할 수 없지만, 함수는 호출 가능함
- 함수가 일반 함수로 호출되면 함수 객체의 내부 메서드 [[Call]]이 호출됨 ⇒ callable
- new 연산자와 함께 생성자 함수로 호출되면 내부 메서드 [[Construct]]가 호출됨 ⇒ non-constructor
- 생성자 함수는 파스칼 케이스(첫 문자를 대문자로)로 명명하여 일반 함수와 구별하도록 함
'FrontEnd > Javascript' 카테고리의 다른 글
[모던 자바스크립트 Deep Dive🦎] 19장 : 프로토타입 (0) | 2023.05.27 |
---|---|
[모던 자바스크립트 Deep Dive🦎] 18장 : 함수와 일급 객체 (0) | 2023.05.21 |
[모던 자바스크립트 Deep Dive🦎] 15장 : let, const 키워드와 블록 레벨 스코프 (0) | 2023.05.21 |
[모던 자바스크립트 Deep Dive🦎] 14장 : 전역 변수의 문제점 (0) | 2023.05.21 |
[모던 자바스크립트 Deep Dive🦎] 13장 : 스코프 (0) | 2023.05.21 |
Comments