배열(A) 속 객체 에 사용할 수 있는 메소드를 만들 수 있다. 이러면 장점이 그 메소드 이름과 똑같은 함수를 문서 어딘가에서 만들더라도 그대로 사용이 가능하다. 그 함수는 배열(A)속 객체에 대해서가 아니라 다른 상황에서 쓰일 수 있는 것이다.
물론 배열(A) 속 객체에 대해서 만든 메소드는 그 객체에 대해서만 사용이 가능하다. 코드를 보자.
// 객체를 선언합니다.
const students = []
students.push({ 이름: '구름', 국어: 87, 영어: 98, 수학: 88, 과학: 90})
students.push({ 이름: '별이', 국어: 92, 영어: 98, 수학: 96, 과학: 88})
students.push({ 이름: '겨울', 국어: 76, 영어: 96, 수학: 94, 과학: 86})
students.push({ 이름: '바다', 국어: 98, 영어: 52, 수학: 98, 과학: 92})
// students 배열 내부의 객체 모두에 메소드를 추가합니다.
for (const student of students) {
student.getSum = function () {
return this.국어 + this.영어 + this.수학 + this.과학
}
student.getAverage = function () {
return this.getSum() / 4
}
}
getAverage = function(a,b){
return a + b
}
console.log(getAverage(2,5)) // 이렇게 똑같은 getAverage 이름으로 함수를 만들어도 위의 메소드와 충돌하지 않는다.
// 위의 getAverage 와 getSum 메소드는 students 배열의 객체에만 적용되는 메소드이다.
// 출력합니다.
let output = '이름\t총점\t평균\n'
for (const s of students) {
output += `${s.이름}\t${s.getSum()}점\t${s.getAverage()}점\n`
}
console.log(output)
'자바스크립트 리뷰' 카테고리의 다른 글
class로 객체와 그 객체에 대한 메소드 만들기 [혼공자9-1-8] (0) | 2023.04.05 |
---|---|
함수로 객체 찍어내기(판화 찍어내듯이) [혼공자 9-1-5] (0) | 2023.04.05 |
간단한 추상화 연습2 : 객체를 파라미터로 받는 함수[혼공자 9-1-3] (0) | 2023.04.05 |
간단한 추상화 연습: 성적 데이터 관리 코드[혼공자 9-1-2] (0) | 2023.04.05 |
혼공자 콜백함수 (0) | 2023.04.03 |