생성자 함수에 의한 객체 생성
Obejct 생성자 함수
new연산자와 함께 object 생성자 함수를 호출하면 빈 객체를 생성하여 반환.
생성자 함수에 의해 생성된 객체를 인스턴스라 한다.
객체 리터럴에 의한 객체 생성 방식의 문제점
단 하나의 객체만을 생성한다.
따라서 동일한 프로퍼티를 갖는 여러개 객체를 생성할때는 매번 같은 프로퍼티를 기술해야하기 때문에 비효율적이다.
생성자 함수에 의한 객체 생성방식의 장점
객체를 생성하기 위한 클래스 처럼 프로퍼티 구조가 동일한 객체 여러개를 간편하게 생성할 수 있다.
this : 자기 참조 변수
this 바인딩은 함수 호출 방식에 따라 동적으로 결정
일반함수 : 전역 객체
메소드로서 호출 : 메소드를 호출한 객체
생성자 함수로서 호출 : 생성자 함수가(미래에) 생성할 인스턴스
new 연산자와 함께 호출하면 해당 함수는 생성자 함수로 동작한다.
일반적인 함수 호출은 [[call]] 이 호출
생성자 함수로서 호출은 [[Construct]] 호출
super : 부모 클래스를 참조할때 또는 부모 클래스의 생성자를 호출할때 사용
모든 함수 객체는 호출할 수 있지만 모든 함수 객체를 생성자 함수로서 호출할 수 있는 것은 아니다.
일급 객체
이 조건들을 만족하면 일급 객체
- 무명의 리터럴로 생성할 수 있다. 즉, 런타임에 생성이 가능하다.
- 변수나 자료 구조(객체, 배열 등)에 저장할 수 있다.
- 함수의 매개 변수에게 전달할 수 있다.
- 함수의 결과값으로 반환할 수 있다.
자바스크립트의 함수는 일급 객체 이다.
함수는 값을 사용할 수 있는 곳(변수 할당문, 객체의 프로퍼티, 배열의 요소, 함수 호출의 인수, 함수 반환문)이라면 어디서든지 리터럴로 정의할 수 있으며 런타임에 함수 객체로 평가된다.
함수형 프로그래밍은 순수 함수와 보조 함수의 조합을 통해 외부 상태를 변경하는 부수 효과를 최소화하여 불변성을 지향하는 프로그래밍 패러다임이다.
'패스트캠퍼스 > 자습' 카테고리의 다른 글
poiemaweb 18~19강 복습 (0) | 2019.09.30 |
---|---|
리액트 41~45강 정리 (0) | 2019.09.30 |
리액트 36~40강 정리 (0) | 2019.09.22 |
poiemaweb 14~15강 복습 (0) | 2019.09.20 |
리액트 31~35강 정리 (0) | 2019.09.19 |