‘new’ 연산자와 생성자 함수
유사한 객체 여러 개 만들 때 new 연산자와 생성자 함수 사용
-
생성자 함수
객체 return
생성자 함수와 일반 함수에 기술적 차이 없음
재사용 할 수 있는 객체 생성 코드 구현
두 가지 관례 따름
-
함수 이름의 첫 글자는 대문자
-
반드시 new 연산자 붙여 실행
- 알고리즘
-
객체 만들어서 this 객체에 할당
-
함수 본문 실행
-
this 에 새로운 프로퍼티 만들며 수정
-
참조(이름)값이 this 인 객체 반환
-
-
new Function
재용할 필요가 없는 복잡한 객체 만들 시 코드를 익명 생성자 함수로 감싸주는 방식 사용 가능
재사용 막고 코드 캡슐화 가능
-
new.target 과 생성자 함수
new.target 프로퍼티 사용 시 함수가 new 와 함께 호출됐는지 알 수 있음
활용하여 new 안 붙여도 동일하게 동작 만들 시 코드가 무슨 일 하는 지 정확히 모르게 되므로 지양
-
생성자와 return 문
생성자 함수엔 보통 return 문 없음
return 문 있을 시 규칙
-
객체 return 시, this 대신 객체 반환
-
그 외의 경우 return 문 무시
-
-
괄호 생략하기
인수 없는 생성자 함수 괄호 생략 가능
-
생성자 내 메서드
this 에 메서드 더 하기 가능
요약
-
생성자 함수와 new 연산자로 유사한 객체 생성 가능
-
new 연산자와 함께 호출 시 this 참조값 가진 암묵적인 객체 return
-
생성자 함수는 일반 함수이지만 구분 위해 첫 글자 대문자 사용
-
생성자 내 프로퍼티로 자료형, 메서드 가능