반응형
ES6부턴 자바스크립트에서도 class를 사용할 수 있다.
class 사용을 통하여 코드를 객체 단위로 그룹화 할 수있으며 코드의 재사용성을 높힐 수 있다.
class 클래스이름 {
constructor(파라미터){
}
}
위와 같은 방법으로 class를 사용하여 선언할 수 있다.
constructor 메서드를 사용하여 클래스 내부에서 생성자를 정의 할 수있다.
class person{
constructor(gender , height , age){
this.gender = gender;
this.height = height;
this.age = age;
}
say(){
console.log(`나는 ${this.age}살이고 ${this.gender}입니다!`)
}
}
const lee = new person('여자','160','20');
const kim = new person('남자','170','22');
lee.say() //나는 20살이고 여자입니다!
kim.say() //나는 22살이고 남자입니다!
person 이라는 class를 만들고 new 키워드를 사용하여 lee 와 kim 인스턴스를 생성하였다.
인스터스의 파라미터가 class가 실행되면 각각 gender height age에 담기게 되고
say()를 실행하면 각각 저장된 파라미터를 호출 할수있다.
javascript class도 상속이 가능하다.
class person{
constructor(gender , height , age){
this.gender = gender;
this.height = height;
this.age = age;
}
say(){
console.log(`나는 ${this.age}살이고 ${this.gender}입니다!`)
}
}
class info extends person{
constructor(gender , height , age , job , hobby){
super(gender,height,age)
this.job = job;
this.hobby = hobby;
}
infoSay(){
console.log(`저의 키는 ${this.height}이고 직업은 ${this.job}이며 취미는 ${this.hobby}입니다`)
}
}
const lee = new info('여자','165','20','학생','영화보기');
const kim = new info('남자','170','22','요리사','게임');
lee.infoSay() //저의 키는 165이고 직업은 학생이며 취미는 영화보기입니다
kim.infoSay() //저의 키는 170이고 직업은 요리사이며 취미는 게임입니다
extends 를 통하여 부모클래스에서 상속이 가능하다.
자식 class 는 super 메소드를 통하여 부모클래스 내부에 생성자를 사용 할 수있다.
반응형
'JAVASCRIPT TIL' 카테고리의 다른 글
| TIL - 리덕스미들웨어 (Redux-Middleware) (0) | 2020.09.11 |
|---|---|
| TIL - Next.js Redux 연동하기 configStrore (0) | 2020.09.10 |
| react TIL - next.js, Prop-types, ant-design , Styled-components (0) | 2020.09.04 |
| 자바스크립트 - Array Methods (0) | 2020.07.01 |
댓글