320x100
- Classes are essentially blueprints for objects.
- Class는 Object의 필수적인 설계이다.
- Class는 class 이름이 있고 프로퍼티와 메소드를 둘 다 가지고 있을 수 있다.
- constructor 디폴트 메소드로 해당 class를 인스턴스화할 때마다 실행된다.
class Human {
constructor(){
this.gender = 'male';
}
printGender() {
console.log(this.gender)
}
}
class Person extends Human {
constructor(){
super(); // extends를 쓸 때 이것이 없으면 상의 클래스인 Human의 constructor가 실행되지 않아 에러가 발생한다.
this.name = 'Max';
this.gender = 'female' // 이게 없으면 'male' 이 출력됨
}
printName() {
console.log(this.name);
}
}
var person = new Person();
person.printName(); // 'Max'
person.printGender(); // 'female'
아래는 constructor가 없어지고, arrow function이 추가된 ES7 버전이다.
class Human {
gender = 'male';
printGender = () => {
console.log(this.gender)
}
}
class Person extends Human {
name = 'Max';
gender = 'female' // 이게 없으면 'male' 이 출력됨
printName = () => {
console.log(this.name);
}
}
var person = new Person();
person.printName(); // 'Max'
person.printGender(); // 'female'
반응형
'Developer > Javascript' 카테고리의 다른 글
콜백 함수 쉽게 이해하기 (0) | 2021.09.23 |
---|---|
null 병합 연산자 '??'와 '||' 의 차이 (0) | 2021.09.17 |
자주 헷갈리는 null과 undefined 비교 연산자로 알아보기 (0) | 2021.09.17 |
자바스크립트 레퍼런스 타입(참조타입) 이해하기 (0) | 2021.09.07 |
querySelectorAll Elements에 클릭 이벤트 적용하기 (0) | 2020.08.04 |