이전에 함수를 가지고 객체 지향을 구현하는 방법에 관해 블로깅을 했었다.

이번에 블로킹할 class keyword는 자바스크립트에서 객체 지향을 좀 더 편하게 사용할 수 있도록 도와준다.

 

그렇다고 프로토타입 체이닝이라는 동작 원리가 달라지는 것은 아니다.

즉 class 키워드는 syntatic sugar라고 생각해도 좋을 듯하다.

 

기본적인 클래스 문법과 상속, 메서드나 프로퍼티를 오버 라이딩하는 것은 익숙해졌기 때문에

잘 모르는 부분만 간단하게 짚고 넘어가려고 한다.

 

1. 메서드나 프로퍼티에 static 키워드를 붙이면 정적 프로퍼티나 정적 메서드가 된다.

 

  이러한 정적 프로퍼티나 정적 메서드는 클래스 자체에 해당 프로퍼티나 메서드를 구현함으로써

  특정 클래스 인스턴스가 아닌 클래스 '전체’에 필요한 기능을 만들 때 사용할 수 있다.

  인스턴스끼리 비교해주는 메서드나 팩토리 메서드를 만들 때 정적 메서드가 쓰이기도 한다.

 

  정적 프로퍼티나 메서드는 개별 인스턴스에 묶이지 않는다.  

  즉 인스턴스에서 접근할 수가 없다는 의미다.

 

 

 

2. private, protected keyword는 내부 인터페이스를 숨기기 위해 사용된다.

 

  내부 인터페이스와 외부 인터페이스 간의 정확한 구별은 중요하다.

  이는 객체 지향을 구현하는 이유이기도 하다.

  이러한 특성은 캡슐화, 추상화와 관련이 있다.

 

  자바스크립트에서 private keyword는 '#'이고 private keyword는 '_'로 사용할 수 있다.

 

 

 

3. instanceOf 연산자

 

  instanceof 연산자를 사용하면 객체가 특정 클래스에 속하는지 아닌지를 확인할 수 있습니다. instanceof는 상속 관계도 확인해준다.

 

 

 

*참고 : ko.javascript.info/classes

 

 

'CodeStates' 카테고리의 다른 글

IM 10일차 (Linked List)  (0) 2021.01.22
IM 8일차 (Hash Table)  (0) 2021.01.20
IM 7일차 (Stack, Queue)  (0) 2021.01.19
IM 4일차 (Pesudoclassical)  (0) 2021.01.15
IM 4일차 (자바스크립트에서 객체의 작동 원리)  (0) 2021.01.14

+ Recent posts