Class
자바스크립트에서의 클래스는 프로토타입을 기반으로 만들어진 특수한 함수이다. 따라서 함수를 정의하듯 클래스 선언과 표현식으로 정의 할 수 있다.
Class Declaration
class 키워드를 사용해 클래스 선언을 통한 정의가 가능하다.
function키워드를 통한 함수 선언은 호이스팅이 일어나지만 class키워드를 통한 클래스 선언은 클래스를 사용하기 전에 선언 해야한다.
클래스 표현을 통한 클래스 정의는 클래스 이름을 가질 수도 있고, 그렇지 않을 수도 있다.
클래스 표현식으로 정의된 클래스 이름은 함수 표현식과 마찬가지로 내부 범위에서만 유효하며 사용된 클래스 이름은 외부 범위에서 접근 불가하다.
Strick Mode
클래스 내부(body)는 strict mode로 실행된다. 성능 향상을 위해 엄격한 문법이 적용된다.
Constructor
클래스로 생성된 객체의 인스턴스를 생성하고 초기화하기 위한 생성자 메소드이며 클래스 내부에 오직 하나의 constructor()메소드만 존재할 수 있다.
constructor()메소드는 인스턴스의 생성과 동시에 클래스 필드의 생성과 초기화를 진행한다.
super키워드를 사용햐 부모 클래스의 constructor를 호출할 수 있다.
Getter and Setter
클래스의 필드를 참조하거나 조작하기 위해 사용하며 메소드 호출이 아닌 값을 할당하는 것으로 작동한다.
- getter : get키워드를 사용하며, 반드시 반환하는 값이 있어야 한다.
- setter : set키워드를 사용하며, 클래스 필드의 값을 조작한다.
static methods
static 키워드를 사용해 메소드들을 정의할 수 있다. 이렇게 정의된 정적 메소드는 인스턴스가 아닌 이름으로 호출되며, 클래스의 인스턴스에서 호출 될 수 없다.
Factory Function
팩토리 함수 (factory function)란 클래스나 생성자 함수는 아니지만 새로운 객체를 리턴하는 함수이다.
클래스나 new키워드의 복잡함 없이 객체 인스턴스를 생성 할 수 있다.
참고 및 출처
'JavaScript' 카테고리의 다른 글
자바스크립트 배열 메소드 정리! (0) | 2022.06.03 |
---|---|
자바스크립트 개발자가 알아야할 33가지 개념[#15. this, call(), apply() and bind()] (0) | 2022.05.30 |
자바스크립트 개발자가 알아야할 33가지 개념[#13. DOM and Layout Trees] (0) | 2022.05.25 |
자바스크립트 개발자가 알아야할 33가지 개념[#12. Bitwise Operator(비트 연산자)] (0) | 2022.05.24 |
자바스크립트 개발자가 알아야할 33가지 개념[#11. JavaScript Engines] (0) | 2022.05.21 |
댓글