댓글 검색 목록

[javascript] JavaScript의 어려운 부분 마스터하기 : 프로토 타입 및 클래스 IV

페이지 정보

작성자 운영자 작성일 20-09-05 16:50 조회 558 댓글 0

ES6 클래스 사용 


연습 8 


PersonClass 클래스를 만듭니다. PersonClass에는 이름 입력이 전달되고 동일한 이름으로 속성에 저장되는 생성자가 있어야 합니다. 

PersonClass에는 문자열 'hello'를 기록하는 greet라는 메서드도 있어야 합니다. 


class PersonClass {
  constructor() {
    // add code here
  }

  // add code here
}
const george = new PersonClass();
george.greet();
// -> Logs 'hello'


해결책 8 


class PersonClass {
  constructor(name) {
    this.name = name;
  }

  greet() {
    console.log("hello");
  }
}


여기에서는 수업 패턴을 사용하여 연습 2와 5를 정확하게 재현했습니다. 많은 JS 열렬한 사람들이 이 패턴이 JS 고유의 모습이 아니라고 불평하지만 다른 언어에서 온 사람들에게 더 읽기 쉽습니다. 실제로 JS 엔진은 연습 5에서 했던 작업을 정확히 수행합니다.


연습 9 


PersonClass 클래스를 확장하여 개체를 만드는 DeveloperClass 클래스를 만듭니다. name 속성과 greet 메소드 외에도 DeveloperClass에는 소개 메소드가 있어야 합니다. 호출되면 소개는 'Hello World, 내 이름은 [name]'이라는 문자열을 기록해야 합니다. 


const thai = new DeveloperClass("Thai", 32);
console.log(thai.name);
// -> Logs 'Thai'
thai.introduce();
//-> Logs 'Hello World, my name is Thai'



해결책 9 


class DeveloperClass {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
  introduce() {
    console.log(`Hello World, my name is ${this.name}`);
  }
}



물론 이것은 연습 7과 똑같지 만 프로토 타입 속성에 직접 메서드를 추가하는 대신 클래스 구문을 사용합니다. 다시 말하지만, JS 엔진은 똑같은 작업을 수행합니다.



댓글목록 0

등록된 댓글이 없습니다.

웹학교 로고

온라인 코딩학교

코리아뉴스 2001 - , All right reserved.