JavaScript는 OOP(Object-oriented programming) 언어인데 class
는 개발자가 유사한 객체를 빠르게 생성
할 때 사용하는 도구이며 data fields와 함수(method)가 혼합된 형태
이다.
객체(object)
의 설계도인 클래스(class)
는 문법이 비슷하지만 가장 큰 차이는 constructor라는 생성자 함수
이다. constructor()
method는 새롭게 객체를 생성
하는데 이렇게 객체를 생성하는 과정을 '인스턴스화'
라고 한다.
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
speak() {
console.log(`${this.name}: hello!`)
}
}
① class의 이름은 항상 대문자
로 시작하여 camelcase
로 작성해야한다.
② class의 instance를 생성
할때마다 constructor method가 호출
된다.
③ class의 실행범위(context)에서 this는 해당 instance를 의미
한다.
④ class내 context에 있는 name, price와 같이 어느 곳에서나 사용
할 수 있는 변수를 이를 '멤버 변수'
라고 부른다.
⑤ 이 멤버 변수는 this로 접근
한다.
instance
는 class를 통해서 생성된 객체를 의미하며 생성된 instance는 모두 다른 property 값
을 갖고 있다. instance는 class 이름 옆에 new를 붙여서 생성
한다.
🥊 new
는 constructor() method를 호출
하고 새로운 instance를 return
해준다.
const link717 = new Person('link717', 100);
link717.speak();
console.log(link717.name);
console.log(link717.age);
› link717
› 100
method
는 함수로 객체
가 프로퍼티 값으로 갖고 있는 것
을 method라고 한다. class의 method
는 object의 문법과 같지만 프로퍼티마다 ,(comma)로 구분할 필요가 없다
.