Menu
CoddyTech

使用组合的 Book 类

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

challenge icon

挑战

使用组合创建 Book 类

你的任务:

  1. 在名为 Book.js 的文件顶部导入 Author 类
  2. 创建并导出一个 Book 类,包含:
    • 私有字段:#title、#author、#isCheckedOut
    • 接收 title 和 author 的构造函数
    • 两个 getter:title 和 authorInfo,后者返回作者的姓名
  3. 在 main.js 中添加导入 Book 类的语句

组合在此处的应用方式:

组合表示“拥有”关系。在我们的 Book 类中:

  • Book 拥有一个 Author(而不是“是一个” Author)
  • Book 包含一个 Author 实例,作为它的一个组成部分
  • Author 独立存在,可以被多个 Book 使用
  • 这就是组合:用简单对象(Author)构建复杂对象(Book)

亲手试试

import { Author } from './Author.js';

// TODO:导入 Book 类

// 测试
const author = new Author('J.K. Rowling');
const book = new Book('Harry Potter', author);

console.log('Book title:', book.title); // 应输出:"Book title: Harry Potter"
console.log('Author:', book.authorInfo); // 应输出:"Author: J.K. Rowling"

面向对象编程中的所有课

自己练习: JavaScript 在线编译器