JS week5 ch.25

최준민·2023년 11월 12일

모던 자바스크립트

목록 보기
20/34

클래스(class)
생성자 함수와 유사하지만 다른 새로운 객체 생성 방식
생성자 함수와 유사 = 함수로 평가(클래스도 일급 객체)

클래스

몸체에서 constructor, 프로토타입 메서드, 정적 메서드를 정의할 수 있다.

호이스팅이 발생하지 않는 것 처럼 보임
let, const 처럼 호이스팅은 발생하지만 일시적 사각지대에 머무르기 때문

인스터스를 생성하기 위해 new연산자와 함께 호출해야 함

클래스 내부 메서드

클래스의 constructor메서드와 프로토타입의 constructor프로퍼티는 관련X

정적 메서드와 프로토타입 메서드 차이
정적 메서드 : 클래스에 바인딩             프로토타입 메서드 : 프로토타입에 바인딩
정적 메서드 : static을 붙여줘야함         프로토타입 메서드 : 기본적으로 프로토타입 메서드가 됌
정적 메서드 : 클래스로 호출                프로토타입 메서드 :인스턴스로 호출
정적 메서드 : 인스턴스 프로퍼티 참조 X 프로토타입 메서드 : 인스턴스 프로퍼티 참조 O

클래스 필드
→ 클래스가 생성할 인스턴스의 프로퍼티를 가르키는 용어

인스턴스 프로퍼티 > 클래스 필드에 함수 할당
프로토타입 프로퍼티 > 접근자 프로퍼티

public필드 : 클래스 내부 참조, 자식 클래스 내부 참조, 클래스 인스턴스를 통한 접근 가능
private필드 : 클래스 내부에서만 참조

클래스 확장
→ 기존 클래스를 상속받아 새로운 클래스를 확장
extends키워드 제공

상속을 통해 확장된 클래스 : 서브 클래스
서브클래스에 상속된 클래스 : 수퍼 클래스
서브클래스 = 파생 클래스 = 자식 클래스
수퍼클래스 = 베이스 클래스 = 부모 클래스

super 키워드
→ 함수처럼 호출할 수도 있고 this와 같이 식별자 처럼 참조할 수 있는 특수한 키워드

super 호출 시 수처클래스의 constructor 호출
super 참조 시 수퍼클래스의 메서드 호출 가능

0개의 댓글