Menu
CoddyTech

验证图书作者

本课属于 Coddy JavaScript 学习旅程的“面向对象编程”单元。第 52 课,共 56 课。

challenge icon

挑战

通过添加验证来改进 Book 类的构造函数。目前,Book 接受 author 参数的任何值,但它应该只接受 Author 实例。

你的任务:

  1. 在 Book 构造函数中添加 if-else 检查
  2. 如果 author 有效(是 Author 类的实例),使用 author instanceof Author,设置 this.#author = author
  3. 否则(author 无效):准确记录 “Invalid author: must be Author instance”。设置 this.#author = null

这样,即使 author 无效,书籍也应该仍然能够创建。

亲手试试

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');

面向对象编程中的所有课

自己练习: JavaScript 在线编译器