자바스크립트 리뷰
함수로 객체 찍어내기(판화 찍어내듯이) [혼공자 9-1-5]
가문비7
2023. 4. 5. 23:00
함수로 객체를 찍어내고 고 객체들마다 메소드를 만들어 둘 수도 있다.
그러면 장점이 많다.
1) 객체들의 키와 값을 하나하나 입력할 때보다 코드를 더 적게 칠 수 있다. 파라미터만 입력하면 키와 값이 자동입력되니까.
2) 코드를 적게 치니 오탈자가 줄어든다.
3) 객체의 속성과 메소드를 한 함수 내에서 관리하므로 객체 관리(유지보수)가 쉬워진다.
무튼 그렇게 만든 코드를 보자.
function createStudent(이름, 국어, 영어, 수학, 과학) {
return {
// 속성을 선언합니다. 값은 파라미터로 이미 입력되었음.
이름: 이름,
국어: 국어,
영어: 영어,
수학: 수학,
과학: 과학,
// 메소드를 선언합니다.
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(createStudent('구름', 87, 98, 88, 90)) // 객체에 요소 & 요소에 대한 메소드를 넣어준다.
students.push(createStudent('별이', 92, 98, 96, 88))
students.push(createStudent('겨울', 76, 96, 94, 86))
students.push(createStudent('바다', 98, 52, 98, 92))
console.log(students)
// 출력합니다.
let output = '이름\t총점\t평균\n'
for (const s of students) {
output += s.toString()
}
console.log(output)
함수에다가 파라미터만 입력하면 객체가 더 쉽게 생성된다. 이름, 국어, 수학과 같은 키값을 계속 치지 않아도 된다. 마치 판화로 찍어내듯이 객체들을 함수라는 형틀로 찍어내게 된다.