(1) 객체를 생성하기 위한 틀 (즉, object를 뽑아 내기 위한 기계)
(2) 객체가 아니기 때문에 메모리에 올라가지 않는다. (생성하기 위한 도구이지 객체는 아니다.)
(3) 클래스 안에는 데이터가 없다.
(1) class를 생성해준다.
예제에서 Person이라는 클래스를 만들었고, 객체에 들어갈 값은name = ‘Kim’
과age = 14
이다.
(2) 객체를 생성한다.
출력 값이 클래스로 만들어 놓은 값과 동일한 것을 볼 수 있다.
(3) 그렇다면 class는 틀이라고 했으니 2개를 생성 해보자.
park과 lee를 만들었다. park과 lee의 값이 같게 나온다.
이유는 class를 만들 때, 고정된 값(‘kim’, 14)을 넣어줬기 때문이다.
(4) 생성되는 객체의 값을 다 다르게 줘야하는 상황이라면? 클래스라는 틀을 업그레이드 해준다.
constructor(인자1, 인자2)
인수가 들어갈 수 있는 공간을 작성해 주고,
this.name = 인자1
,this.age = 인자2
로 작성한다.
예제에서는name
과age
로 작성하였다.
(5) 자, 이제 다시 생성해보자.
Park
은name = 'park'
,age = 16
을 추가하였고,
lee
는name = 'lee'
,age = 20
을 추가 해주었다.
원하는 대로 출력이 되었다.
이처럼 많은 객체를 생성하여 사용해야할 때 사용하는 문법이다.
문법
class name {
constructor() {
// 내용 기입
}
}
(1) 클래스로 만든 객체를 instance라고 한다.
(2) constructor은 생성자를 말한다. - 함수로 치자면 인수를 넣기 위한 공간
(3) 여러 객체를 생성할 때 사용 되는 문법이다. - object를 뽑아 내기 위한 기계
생성자 함수와 클래스의 사용 용도를 보면 매우 비슷하다는 생각을 하게 된다.
하지만 여러 차이점이 존재하는데 보기 쉽게 표로 설명하겠다.
- 정적 프로퍼티 : 인스턴스가 사용할 수 없는 프로퍼티
- 정적 메소드 : 인스턴스가 사용할 수 없는 함수
(1) Private 프로퍼티
#
을 붙인다.(2) Public 프로퍼티
#
을 사용하지 않는다.