본문 바로가기

자바스크립트 리뷰

class로 객체와 그 객체에 대한 메소드 만들기 [혼공자9-1-8]

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())  //메소드 사용해보기