Xác thực tác giả sách
Thuộc phần Lập trình hướng đối tượng trong hành trình JavaScript của Coddy. Bài học 52 trên 56.
Thử thách
Cải thiện hàm khởi tạo của lớp Book bằng cách thêm bước xác thực. Hiện tại, Book chấp nhận mọi giá trị cho tham số author, nhưng lớp này chỉ nên chấp nhận một instance của Author.
Nhiệm vụ của bạn:
- Trong hàm khởi tạo của Book, thêm một bước kiểm tra if-else
- Nếu author hợp lệ (là một instance của lớp Author) khi dùng
author instanceof Author, hãy đặtthis.#author = author - Nếu không (author không hợp lệ): Ghi chính xác
“Invalid author: must be Author instance”. Đặtthis.#author = null
Như vậy, sách vẫn được tạo ngay cả khi author không hợp lệ.
Tự làm thử
import { Author } from './Author.js';
import { Book } from './Book.js';
// Kiểm thử
const rowling = new Author('J.K. Rowling');
// Trường hợp hợp lệ (chạy bình thường, không hiện thông báo)
const validBook = new Book('Harry Potter', rowling);
console.log('Author:', validBook.authorInfo); // Đầu ra cần là: "Author: J.K. Rowling"
// Các trường hợp không hợp lệ (cần ghi thông báo nhưng vẫn tạo sách)
const invalid1 = new Book('Fake Book', 'String Author');Tất cả bài học trong Lập trình hướng đối tượng
1Đối tượng và từ khóa this
Ôn nhanh: đối tượngThêm phương thức vào đối tượngTìm hiểu từ khóa thisHàm khởi tạoTừ khóa newThử thách ôn tập7Kế thừa và từ khóa extends
Kế thừaQuan hệ "là một"Từ khóa extendsPhương thức super()Kế thừa thuộc tính và phương thứcThử thách ôn tập13Kết hợp hay kế thừa
Quan hệ “có một” và “là một”Những hạn chế của kế thừa nhiều tầngXây dựng đối tượng5Đóng gói và quyền truy cập
Đóng góiTrường công khai và trường riêng tưPhương thức riêng tưThử thách ôn tập8Tổ chức code OOP
Tổ chức các lớp thành module11Dự án: Trình hiển thị hình dạng
Thiết lập: lớp Hình dạng và xuấtKế thừa lớp Hình trònGhi đè và phương thức diện tíchBộ đếm hình dạng tĩnh6Dự án: Tài khoản ngân hàng đơn giản
Lớp BankAccountGửi tiền và rút tiềnSố dư dưới dạng thuộc tính riêng tư9Phương thức và thuộc tính tĩnh
Cấp lớp và cấp instanceThuộc tính tĩnhPhương thức tiện ích tĩnhThử thách ôn tậpTự luyện tập: Trình biên dịch JavaScript online