반응형
📝Class 클래스
// Class
class Person {
// constructor
constructor(name, age){
this.name = name;
this.age = age;
}
// methods
speak(contents){
console.log(`${this.name} : ${contents}`);
}
// this.age라고 쓴 경우 get age()를 호출
get age(){
// return this.age; 이렇게 사용시 get age()를 계속 호출
return this._age;
}
// this.age에 값을 설정할 때 set age()를 호출
set age(value){
// this.age = value; 이렇게 사용시 set age()를 계속
this._age = value < 0 ? 0 : value;
}
}
const sam = new Person('Sam', 20);
console.log(sam.name);
console.log(sam.age);
sam.speak('Hello!');
JavaScript에서 클래스를 위와 같이 사용할 수 있다
📝Extends, Overrride
class Shape {
constructor(width, height, color){
this.width = width;
this.height = height;
this.color = color;
}
paint(){
console.log(`painting ${this.color} color`)
}
draw(){
console.log(`drawing shape`);
}
}
class Rectangle extends Shape {
// Overriding
draw(){
// super.draw(); 부모 함수 사용 가능
console.log(`drawing Rectangle`)
}
}
const rectangle = new Rectangle(100, 200, 'red');
rectangle.paint();
rectangle.draw();
Extends를 이용해 Class를 상속받을 수 있고 Override처럼 자식 클래스가 함수를 재정의해서 사용할 수도 있다.
반응형