객체 지향 프로그래밍에서 클래스는 특정 객체를 생성하기 위해 변수와 함수를 정의하는 일종의 틀
객체를 정의하기 위한 상태와 함수로 구성
객체 단위로 코드를 그룹화하고 쉽게 재사용하려고 사용
class Cat {
// 생성자 함수
constructor(name) {
// 여기서 this는 이 클래스
this.name = name;
}
// 함수
showName(){
console.log(this.name);
}
}
// 여기서 new는 키워드. 새로운 무언가를 만들기 위해서 생성자 함수와 함께 쓰임
// new와 생성자 함수는 세트
let cat = new Cat('perl');
cat.showName();
console.log(cat);
이미 만들어 둔 어떤 클래스를 가지고 자식 클래스를 만드는 것
class Cat {
// 생성자 함수
constructor(name) {
// 여기서 this는 이 클래스
this.name = name;
}
// 함수
showName(){
console.log(this.name);
return this.name;
}
}
// extends는 Cat 클래스를 상속 받아 온단 뜻
class MyCat extends Cat {
// 생성자 함수
constructor(name, age) {
// super를 메서드로 사용하기
super(name);
this.age = age;
}
// 부모 클래스가 가진 것과 같은 이름의 함수를 만들 수 있음
// 오버라이딩 이라고 표현
showName(){
console.log(this.name);
// super를 키워드로 사용하기
return '내 고양이 이름은 '+super.showName()+'입니다.';
}
showAge(){
console.log('내 고양이는 '+this.age+'살 입니다!');
}
}
let my_cat = new MyCat('perl', 4);
my_cat.showName();
my_cat.showAge();