class 하나를 만든다는 건 마치 객체를 만들어내는 틀을 만드는 것과 같다.
인스턴스는 클래스를 기반으로 생성한 객체를 의미한다.
class 하나를 만들면 그 class를 통해 만들어낼 객체의 key-value 의 구성방식, 그 객체에 쓸수있는 메소드를 정의할 수 있다. 코드를 보자.
class Student {
constructor (이름, 국어, 영어, 수학, 과학) { //constructor 가 생성자. 구성물로 번역하면 될듯.
this.이름 = 이름
this.국어 = 국어
this.영어 = 영어
this.수학 = 수학
this.과학 = 과학
}
getSum () {
return this.국어 + this.영어 + this.수학 + this.과학
} //메소드 만들기
getAverage () {
return this.getSum() / 4
}
toString () {
return `${this.이름}\t${this.getSum()}점\t${this.getAverage()}점\n`
}
}
// 객체를 선언합니다.
const students = []
students.push(new Student('구름', 87, 98, 88, 90)) // students 배열에 class요소 넣기
students.push(new Student('별이', 92, 98, 96, 88))
students.push(new Student('겨울', 76, 96, 94, 86))
students.push(new Student('바다', 98, 52, 98, 92))
//출력합니다.
let output = '이름\t총점\t평균\n'
for (const s of students) {
output += s.toString() // output에 배열의 첫번째 요소부터 붙는다. 그후 그 붙은 것에 배열의 두번째 요소가 또 붙는다.
}
console.log(output)
console.log(students[1].toString()) //메소드 사용해보기
'자바스크립트 리뷰' 카테고리의 다른 글
class를 정의할때 사용자의 실수를 막는 장치를 넣어둘 수 있다. [혼공자 9-2-5] (0) | 2023.04.06 |
---|---|
class 에서 속성(키)과 메소드 상속받기 : extends (0) | 2023.04.06 |
함수로 객체 찍어내기(판화 찍어내듯이) [혼공자 9-1-5] (0) | 2023.04.05 |
배열속 객체에 대한 메소드 만들기 [혼공자 9-1-4] (0) | 2023.04.05 |
간단한 추상화 연습2 : 객체를 파라미터로 받는 함수[혼공자 9-1-3] (0) | 2023.04.05 |