728x90
자바스크립트는 특이하다.. 클래스를 구성하는데 클래스의 구성원들을 컨스트럭터(생성자)에서 결정한다.
class Korean {
constructor(name, age) {
this.name = name;
this.age = age;
this.country = 'Korea';
}
addAge(age) {
return this.age + age;
}
}
그리고 자바스크립트 답게 메소드의 형식은 지정할 필요가 없고 private public 이 없다. 기본적으로 모두 public 이다.
하지만 함수 앞에 #을 붙이면 프라이빗을 정의된다.
메소드 이름 앞에 #이라니 조금 생소하다..!!
class Pet {
constructor(name, age) {
console.log('IN PET CONSTRUCTOR!')
this.name = name;
this.age = age;
}
eat() {
return `${this.name} is eating!`
}
}
class Cat extends Pet {
constructor(name, age, livesLeft = 9) {
console.log('IN CAT CONSTRUCTOR!')
super(name, age)
this.livesLeft = livesLeft;
}
meow() {
return 'MEOWWWW'
}
}
const monty = new Cat('monty',9);
// IN CAT CONSTRUCTOR!
// IN PET CONSTRUCTOR!
console.log(monty); // Cat {name: 'monty', age: 9, livesLeft: 9}
상속의 1등 예시 애완동물, 강아지, 고양이다. 당연히 자바스크립트도 상속이 지원된다. 하지만 자바스크립트는 명시적으로 인터페이스는 지원하지 않는다고 한다.
'Dev > JavaScript' 카테고리의 다른 글
Promise 문법 사용하기 (0) | 2024.08.09 |
---|---|
JavaScript - var, let , const 차이 (0) | 2024.06.26 |
javascript - 객체 정렬 (0) | 2024.06.26 |
JavaScript - 고차함수(map, fill, reduce) (0) | 2024.06.25 |
JavaScript - 이벤트 핸들러 (0) | 2023.12.25 |