반응형
클래스
class Person{
constructor(name, age){
this.name = name;
this.age = age;
}
speak(){
console.log(`${this.name} : hello!`);
}
}
//사용
const ellie = new Person('ellie' , 20);
console.log(ellie.age);
ellie.speak();
getter, setter
class User{
constructor(name, age){
this.name = name;
this.age = age;
}
get age(){
return this._age;
}
set age(value){
// if(value<0){
// throw Error('age can not be negative')
// }
this._age = value < 0 ? 0 :value;
}
}
const user1 = new User('Steve' , -1);//나이가 음수는 안돼
console.log(user1.age);
Public, #Private : 지원된지 얼마 안됨(2020기준)
class Experiment{
publicField = 2;
#privateField =4;
}
const exp = new Experiment();
console.log(exp.publicField);
console.log(exp.privateField);//안됨.
static은 메모리사용을 줄여줄 수 있으므로 그때 사용한다.
상속,다양성
class Shape{
constructor(width, height, color){
}
draw(){
}
getArea(){
return width * this.height;
}
}
class Rectangle extends Shape{
}
class Triangle extends Shape{
}
super.draw()는 최상위인것은 알고있다.
instanceof는 class checking에 사용한다 : 모든 클래스는 Object에 속한다.
다른 언어와 마찬가지로 오버라이딩도 가능하다.
https://developer.mozilla.org/en-US/d...
반응형
'웹(Web) > 프론트엔드(Frontend)' 카테고리의 다른 글
VScode 단축키 및 숏컷 (0) | 2022.03.07 |
---|---|
JavaScript 정리3(Object, 프로퍼티 전달, 배열 출력, clone) (0) | 2021.03.15 |
JavaScript 정리1(변수, 연산자, 반복문, 조건문, 함수) (0) | 2021.03.14 |
모션그래픽 p5.js(Processing 같은원리) (1) | 2021.03.01 |
CSS 정리(선택자, Flexbox, 속성값 등) (0) | 2021.02.21 |