-
# class 대하여!.! 간단정리TIL (Today I Learned) 2023. 12. 17. 00:33
# class 개념이 등장전
let name = 'samsung factory' let tv1 = { name: 'uhd tv', price: 2000000, size: '46inch' } let tv2 = { name: 'ultratv', price: 6700000, size: '56inch' } let tv3 = { name: 'grandtv', size: '36inch' }
# 클래스 기반 코드
실수를 줄이고 쉽게 만들기 위해 class 등장(작업지시서 아직 tv를 만들지는 않음)
// constructor 생성자 : 클래스에 있는 속성값을 초기화 시켜주는 기능 => 코드가 명료해짐 class TV { constructor(name, price, size) { this.name = name; this.price = price; this.size = size; } } let tv1 = new TV('uhd tv', 2000000, '46inch'); let tv2 = new TV('ultratv', 6700000, '56inch');
5줄을 1줄로 끝내주며 자주 쓰는 걸 작업지시서로 만든 다음에 찍어 내듯이 만들 수 있음
안에 어떤 요소가 들어가 있는지 한번에 보기도 편함
# 추상화를 통한 공통 속성 정의( 클래스 기반 코드에 계속해서 추가)
class Product { constructor(name, price) { this.name = name; this.price = price; } } class AC extends Product { constructor(name, price, type) { super(name, price); this.type = type; } } class Laptop extends Product { constructor(name, price, weight) { super(name, price); this.weight = weight; } }
# Products 클래스에 기능 추가
class Product { constructor(name, price) { this.name = name; this.price = price; } getPrice() { return `${this.price}원`; } setPrice(price) { if (price < 0) { throw new Error('마이너스값 안됨'); } this.price = price; } }
# TV 클래스가 Products를 확장
class TV extends Product { constructor(name, price, size) { super(name, price); this.size = size; } }
'TIL (Today I Learned)' 카테고리의 다른 글
JavaScript의 한계와 TypeScript의 등장 (1) 2023.12.20 #TIL_백오피스 프로젝트 회고록(음식 배달 서비스) (1) 2023.12.18 #Sequelize 2탄: 더 깊이 들어가는 Sequelize 사용 방법 (0) 2023.12.14 #TIL(error)_ERROR: NodeJS address already in use // Window 해결 방법 (0) 2023.12.11 #TIL_Prisma에 대하여!.! (0) 2023.12.08