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 엔진은 똑같은 작업을 수행합니다.
등록된 댓글이 없습니다.