보통 Class 는 Fields, methods가 묶여진 형태이다. Fields = 변수 / methods = function
Fields로만 묶여져 있으면 data class라 부른다.
Class > template, declare once, no data in (틀)
Object > instance of a class, created many times, data in (틀에 나온 거)
Javascript classes > introduced in ES6, syntactical sugar over prototype-based inheritance
JS 안에서 get/set 사용 시 유의사항.
get을 정의하면 this.age는 get method를 호출한다. set도 마찬가지이다.
만약 setter 안에서 this.age를 호출하면 set method가 호출되기에 자기 자신을 호출하는 셈이다.
이는 무한 callback을 일으키며 이를 방지하기 위해 보통 변수 앞에 _언더바를 추가하여 변수명을 다르게 한다.
JS 신기능 > class 에서 생성자를 사용하지 않고 정의할 때 public / #기호를 붙이면 private 이다.
Static properties and method > Class 내부에서 static을 사용하면 클래스 자체에 할당된다. 즉 인스턴스들 한데는 할당되어 있지 않다.
해당 선언된 class에서 호출해서 사용해야 하며, object와 상관없이 공통적으로 사용되는 것들을 static 과 static method를 사용하여
메모리의 사용을 조금 더 줄여줄 수 있다.
extends를 이용해서 상속이 가능하다. 다른 언어처럼 오버라이팅 제공.
자바스크립트 MDN reference page 확인하면 많은 유용한 api를 확인 할 수 있음.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference