자바스크립트 Class와 생성자(Constructor)

susu.J·2020년 5월 31일
0

클래스 정의

ES6에서 클래스는 객체지향 프로그래밍의 핵심인 특별한 함수다. 그렇기 때문에 함수와 동일하게 클래스 선언(Class declarations)과 (Class expressions)으로 클래스를 만들 수 있다.

(객체 지향 프로그래밍이란, 프로그램을 객체들로 구성하고, 객체들간에 서로 상호작용하도록 작성하는 방법)

클래스는 결국 {num:1} 처럼 생긴 객체(object)를 잘 설계하기 위한 틀은 맞다. 그런데 이때의 객체는 특정로직을 갖고 있는 행동(method)와 변경 가능한 상태(멤버 변수)를 가진다.

원하는 구조의 객체틀을 짜놓고, 비슷한 모양의 객체를 찍어낼수 있다.

객체를 매번 만들어서 사용해도 되지만, 큰 규모의 객체거나 비슷한 모양의 객체를 계속 만들어야한다면, class라는 설계도를 통해 만들 수 있다.
apple 이라는 객체는 5개의 프로퍼티를 갖는 코드를 작성해보겠다.


프로퍼티 값에 함수가 할당되었다. 이렇게 객체의 프로퍼티 값에는 함수도 넣을 수 있다.

-객체 내부에서 해당 객체의 프로퍼티에 접근하려면?
this 라는 키워드를 사용할 수 있다!
그래서 getPrice 메서드에서 this.price로 price키에 접근할 수 있었고,
1000값을 갖고 올수 있었다.

!! 메소드 정의

ES6의 class에서, 클래스의 몸통(body)는 {}이며, class메소드는 class의 {}안에 정의해야 한다.

strict mode

클래스 몸통(body)는 strict mode로 실행된다.
생성자(Constructor)
생성자 메소드는 객체의 생성과 초기화를 하는 특별한 메소드이다. 클래스에서 constructor 이름을 갖는 메소드는 하나여야 한다.

ES6의 클래스 상속

extends 키워드를 통해 클래스를 상속받아, 자식 클래스를 만들 수 있다.

profile
on the move 👉🏼 https://sjeong82.tistory.com/

0개의 댓글