상세 컨텐츠

본문 제목

class, extends, getter, setter 연습문제

Javascript

by 모모87 2021. 9. 13. 17:44

본문

// Q1.
// var 강아지1 = { type : '말티즈', color : 'white' };
// var 강아지2 = { type : '진돗개', color : 'brown' }; 


class 강아지 {
    constructor(type,color){
        this.typeName = type;
        this.colorName = color;
    }
    한살먹기(){
    if( this instanceof Cat) {
        this.나이++
    }
  }
}
var 강아지1 = new 강아지('말티즈','white');
var 강아지2 = new 강아지('진돗개','brown');

console.log(강아지2);


//Q2.class를 이용해 고양이 오브젝트 여러개를
// var 고양이1 = { type : '코숏', color : 'white', age : 5 };
// var 고양이2 = { type : '러시안블루', color : 'brown', age : 2 }; 


class 고양이 extends 강아지 {
        constructor(type,color,age) {
            super(type,color);
            this.나이 = age;
        }
    }


var 고양이1 = new 고양이('코숏','white','5');
var 고양이2 = new 고양이('러시안블루','brown','2');

console.log(고양이1);
console.log(강아지1.한살먹기)
console.log(고양이2.한살먹기)
// Q.4
// 자바스크립트로 간단한 게임 기능을 가진 오브젝트를 뽑는 class를 만들고 싶습니다. 
// 다음 조건에 따라 class를 만들어보세요. class 이름은 Unit이라고 합시다.

 

// (1) 모든 Unit의 인스턴스는 공격력, 체력 속성이 있으며 기본 공격력은 5, 기본 체력은 100으로 설정되어 있어야 합니다.
// (2) 모든 Unit의 인스턴스는 전투력을 측정해주는 battlePoint라는 getter가 있습니다.
// console.log( 인스턴스.battlePoint ) 이렇게 사용하면 현재 공격력과 체력을 더한 값을 콘솔창에 출력해주어야합니다.
// (3) 모든 Unit의 인스턴스는 heal이라는 setter가 있습니다.

// 인스턴스.heal = 50 이렇게 사용하면 체력 속성이 50 증가해야합니다.

class Unit {
    constructor(){
        this.체력 = 100;
        this.공격력 = 5;
    }
    get battlePoint(){
        return this.체력 + this.공격력;
    }
    set heal(체력){
        his.체력 = this.체력 + a; 
    }
}
var 쎈애 = new Unit();

console.log(쎈애.battlePoint);
쎈애.heal = 50;

// Q.6
// (1) data 오브젝트안에 setter 역할 함수를 하나 만들어보십시오.
// setter 함수에 1,2,3,4 이렇게 아무 자연수나 파라미터로 입력하면 홀수는 odd, 짝수는 even 이라는 속성에 array 형태로 저장되어야합니다.   
// (2) data 오브젝트안에 getter 역할 함수를 하나 만들어보십시오.
// getter 함수를 사용하면 odd, even에 저장된 모든 데이터들이 숫자순으로 정렬되어 출력되어야합니다. 


var data = {
  odd : [],
  even : [],
  setter함수 : function(...숫자들){
    숫자들.forEach((a)=>{
      if ( a % 2 == 1 ) {
        this.odd.push(a)  //홀수일때
      } else {
        this.even.push(a)  //짝수일때
      }
    });
  }
};

data.setter함수(1,2,3);



var data = {
  odd : [1,3],
  even : [2,4,6],
  get getter함수(){
    return [...this.odd, ...this.even ].sort()
  }
};

console.log(data.getter함수);
반응형

관련글 더보기