❓ 클래스란?

(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 로 작성한다.
예제에서는 nameage 로 작성하였다.

(5) 자, 이제 다시 생성해보자.
Parkname = 'park', age = 16 을 추가하였고,
leename = 'lee', age = 20 을 추가 해주었다.
원하는 대로 출력이 되었다.
이처럼 많은 객체를 생성하여 사용해야할 때 사용하는 문법이다.

✅ 클래스 문법 살펴보기

문법

class name {
	constructor() {
      // 내용 기입
    }
}

(1) 클래스로 만든 객체를 instance라고 한다.
(2) constructor은 생성자를 말한다. - 함수로 치자면 인수를 넣기 위한 공간
(3) 여러 객체를 생성할 때 사용 되는 문법이다. - object를 뽑아 내기 위한 기계

💡 클래스 문법과 생성자 함수의 차이

생성자 함수와 클래스의 사용 용도를 보면 매우 비슷하다는 생각을 하게 된다.
하지만 여러 차이점이 존재하는데 보기 쉽게 표로 설명하겠다.

  • 정적 프로퍼티 : 인스턴스가 사용할 수 없는 프로퍼티
  • 정적 메소드 : 인스턴스가 사용할 수 없는 함수

✅ 클래스 프로퍼티

(1) Private 프로퍼티

  • 외부 접근 불가
  • class안에서만 사용, 변경 가능
  • 변수 앞에 # 을 붙인다.

(2) Public 프로퍼티

  • 외부 접근 가능
  • class 외부에서 사용, 변경 가능
  • # 을 사용하지 않는다.
profile
#UXUI #코린이

0개의 댓글