도서 저자 유효성 검사
Coddy JavaScript 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨 — 56개 중 52번째.
챌린지
유효성 검사를 추가하여 Book 클래스 생성자를 개선하세요. 현재 Book은 author 매개변수에 대해 어떤 값이라도 허용하지만, Author 인스턴스만 허용해야 합니다.
수행 과제:
- Book 생성자 안에 if-else 체크를 추가하세요.
author instanceof Author를 사용하여 author가 유효한 경우(Author 클래스의 인스턴스인 경우),this.#author = author를 설정하세요.- 그렇지 않은 경우(author가 유효하지 않은 경우): 정확히
“Invalid author: must be Author instance”를 로그로 출력하세요.this.#author = null로 설정하세요.
이러한 방식을 통해, 유효하지 않은 author가 전달되더라도 book 객체는 여전히 생성되어야 합니다.
직접 해보기
import { Author } from './Author.js';
import { Book } from './Book.js';
// 테스트
const rowling = new Author('J.K. Rowling');
// 유효한 사례 (조용히 작동해야 함)
const validBook = new Book('Harry Potter', rowling);
console.log('Author:', validBook.authorInfo); // 출력 결과: "Author: J.K. Rowling"
// 유효하지 않은 사례 (메시지를 기록해야 하지만 여전히 책을 생성해야 함)
const invalid1 = new Book('Fake Book', 'String Author');