验证图书作者
本课属于 Coddy JavaScript 学习旅程的“面向对象编程”单元。第 52 课,共 56 课。
挑战
通过添加验证来改进 Book 类的构造函数。目前,Book 接受 author 参数的任何值,但它应该只接受 Author 实例。
你的任务:
- 在 Book 构造函数中添加 if-else 检查
- 如果 author 有效(是 Author 类的实例),使用
author instanceof Author,设置this.#author = author - 否则(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');面向对象编程中的所有课
8整理 OOP 代码
将类组织到模块中自己练习: JavaScript 在线编译器