웹(Web)/프론트엔드(Frontend)

JavaScript 정리2(클래스, 상속, 다양성)

SK_MOUSE 2021. 3. 15. 00:20
클래스
getter, setter
상속,다양성

javascript

클래스

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...

 

반응형