자바스크립트 리뷰
class로 객체와 그 객체에 대한 메소드 만들기 [혼공자9-1-8]
가문비7
2023. 4. 5. 23:37
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()) //메소드 사용해보기