티스토리 뷰
Class
* class와 object
1. class
- object(인스턴스)를 만들 수 있는 틀이다.
- class 자체에는 data가 들어있지 않다.
- 틀을 정의해서 한번만 선언한다.
- class는 정의만 한 것이기 때문에 실제 메모리에 올라가지 않는다.
2. object
- class를 이용해 data를 넣어 만드는 것이다.
- class를 이용해 새로운 인스턴스를 생성하면 그게 바로 object이다.
- object는 class를 이용해서 무수히 많이 만들 수 있다.
- class를 이용해 만든 object는 실제 메모리에 올라간다.
1. class 선언과 object 생성
class Person {
//constructor
constructor(name, age) {
//fields
this.name = name;
this.age = age;
}
//methods
speak() {
console.log(`${this.name}: hello~`);
}
}
const ellie = new Person("ellie", 24); // 인스턴스 생성 (object)
console.log(ellie);
console.log(ellie.name);
console.log(ellie.age);
ellie.speak();
2. Getter / Setter
getter 함수는 특정 값을 조회할 때 내가 설정한 함수로 연산된 값을 반환한다.
class User {
constructor(firstName, lastName, age) {
this.firstName = firstName;
this.lastName = lastName;
this.age = age;
}
// getter
get age() {
return this._age;
}
//setter
set age(value) {
this._age = value < 0 ? 0 : value;
}
}
const user1 = new User("steve", "job", -10);
console.log(user1.age);
3. 상속
// 부모 class
class Shape {
constructor(width, height, color) {
this.width = width;
this.height = height;
this.color = color;
}
draw() {
console.log(`drawing ${this.color} color of`);
}
getArea() {
return this.width * this.height;
}
}
class Rectangle extends Shape {}
class Triangle extends Shape {
draw() {
super.draw(); // super을 앞에 써주면 오버라이딩 해도 부모 class 메소드 호출 가능
console.log(`△`);
}
// 오버라이딩(다형성)
getArea() {
return (this.width * this.height) / 2;
}
}
const rectangle = new Rectangle(20, 20, `blue`);
rectangle.draw();
console.log(rectangle.getArea());
const triangle = new Triangle(20, 20, `red`);
triangle.draw();
console.log(triangle.getArea());
'Front-end 🔥🖤 > JavaScript' 카테고리의 다른 글
[노마드 코더] 바닐라 JS로 크롬 앱 만들기 (0) | 2022.05.09 |
---|---|
[노마드 코더] 바닐라 js로 그림판 만들기 (0) | 2022.02.17 |
📚 드림코딩 by 엘리 JavaScript 정리 4. 함수의 선언과 표현 (0) | 2022.02.04 |
📚 드림코딩 by 엘리 JavaScript 정리 3. 연산과 반복문 (0) | 2022.01.22 |
📚 드림코딩 by 엘리 JavaScript 정리 2. 데이터 타입 (0) | 2022.01.21 |
댓글
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 백준
- 정보처리기사 실기
- 이더리움
- 프로그래머스
- indexOf()
- 정보처리기사 실기 정리
- 블록체인
- set 객체
- 현장실습
- 노마드코더
- 졸업작품준비
- 갤러리띄우기
- 정보처리기사
- css grid
- 정처기 실기
- JavaScript
- MySQL
- php게시판만들기
- 졸업작품
- 정처기 실기 정리
- 스마트컨트랙트
- HTML
- DAPP
- 홈페이지 만들기
- CSS
- php
- 현장실습 기록
- php 달력만들기 응용
- 리액트
- C언어
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함