17 생성자함수에 의한 객체 생성

개발쟁이·2021년 4월 2일
0


생성자함수 constructor new 연산자와 함께 호출해 객체(인스턴스) 생성하는 함수
This 객체자신의 프로퍼티나 메서드 참조위한 자기 참조 변수 . This바인딩은 함수 호출 방식에 따라 동적으로 결정됨

자바스크립트 엔진은 암묵적인 처리로 인스턴스 생성,반환 new 연산자와 함께 생성자 함수 호출시 암묵적 인스턴스 생성, 초기화, 반환함 (New를안붙이면 일반 함수로 동작)

내부메서드

함수 객체는 호출가능

3번쨰문장, [[Construct]] 가 호출되고 이때 없다면 에러 발생

내부슬롯인 [[Environment]] [[FormalParameters ]]

내부 메서드 [[Call]] [[Construct]]를 가지고 있어서

[[Call]] 를갖는 객체 callable

[[Construct]] 를 갖는 함수 객체 constructor(생성자 함수로서 호출 할 수있는 함수 : 함수 선언문, 함수 표현식, 클래스), non-constructor (es6 메서드 축약표현, 화살표함수)

New target

Es6 에서 생성자함수가 new연산자 없이 호출 방지를 위해 지원 IE는지원안됨 (스코프 세이브 생성자패턴사용) new.target을사용하면 new연산자와 함께 생성자 함수로 호출되었는지 확인가능

New연산자와 함께 생성자 함수로 호출되면 함수내의 new.target은자신을 가르킴 new없이 일반 함수로서 호출된 내부의 new.target은undefined

profile
개발 인생

0개의 댓글

관련 채용 정보