생성자와 prototype 메서드를 읽기 쉬운 class 문법으로 작성합니다.
class는 prototype 기반 상속 위에 제공되는 문법입니다. constructor는 new로 객체를 만들 때 초기화하고 메서드는 prototype에 공유됩니다. private field는 #으로 선언하며 외부에서 직접 접근할 수 없습니다.
new Course로 JavaScript와 3을 넘기면 constructor가 title과 total을 채우고, 클래스 본문 맨 위에 선언한 private 필드 completed는 0에서 시작합니다. complete를 한 번 호출해 그 값이 1이 되므로 summary는 JavaScript: 1/3을 돌려줍니다. complete 안의 비교 덕분에 여러 번 호출해도 completed는 total인 3을 넘지 않습니다.
함께 바뀌는 값과 동작에 이름을 붙여 여러 곳에서 재사용할 때 적합합니다. 추상화부터 만들기보다 실제 호출부가 반복되거나 교체되어야 하는지 먼저 확인하세요.
class가 데이터를 자동으로 불변하게 만들지는 않습니다. 공개 속성은 외부에서 바뀔 수 있습니다.
직접 바꿔보세요두 번째 강좌 인스턴스를 만들고 complete를 두 번 호출하세요.