Menu
Coddy logo textTech

Book 著者のバリデーション

CoddyのJavaScriptジャーニー「オブジェクト指向プログラミング」セクションの一部 — レッスン 52/56。

challenge icon

チャレンジ

バリデーションを追加して Book クラスのコンストラクタを改善します。現在、Bookauthor パラメータとして任意の値を受け入れますが、Author インスタンスのみを受け入れるようにする必要があります。

タスク:

  1. Book コンストラクタ内に if-else チェックを追加します
  2. author instanceof Author を使用して、author が有効な場合(Author クラスのインスタンスである場合)、this.#author = author を設定します
  3. それ以外の場合(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); // Should output: "Author: J.K. Rowling"

// 無効なケース(メッセージをログ出力するが、それでも本を作成する)
const invalid1 = new Book('Fake Book', 'String Author');

オブジェクト指向プログラミングのすべてのレッスン