Validasi Penulis Buku
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan JavaScript di Coddy. Pelajaran 52 dari 56.
Tantangan
Tingkatkan constructor class Book dengan menambahkan validasi. Saat ini, Book menerima nilai apa pun untuk parameter author, tetapi seharusnya hanya menerima instance Author.
Tugasmu:
- Di constructor Book, tambahkan pemeriksaan if-else
- Jika author valid (sebuah instance dari class Author) menggunakan
author instanceof Author, tetapkanthis.#author = author - Jika tidak (author tidak valid): Catat persis
“Invalid author: must be Author instance”. Tetapkanthis.#author = null
Dengan cara ini, book tetap harus dibuat meskipun author tidak valid.
Coba sendiri
import { Author } from './Author.js';
import { Book } from './Book.js';
// Pengujian
const rowling = new Author('J.K. Rowling');
// Kasus valid (seharusnya berjalan tanpa pesan)
const validBook = new Book('Harry Potter', rowling);
console.log('Author:', validBook.authorInfo); // Seharusnya menghasilkan output: "Author: J.K. Rowling"
// Kasus tidak valid (seharusnya mencatat pesan, tetapi tetap membuat buku)
const invalid1 = new Book('Fake Book', 'String Author');Semua pelajaran di Pemrograman Berorientasi Objek
1Object dan Kata Kunci this
Tinjauan Singkat: objectMenambahkan method ke objectMemahami Kata Kunci thisFungsi KonstruktorKata Kunci newTantangan Rangkuman7Pewarisan & Kata Kunci extends
PewarisanHubungan "is-a"Kata Kunci extendsmethod super()Mewarisi property & methodTantangan Rangkuman2Mengatur Kode
Apa itu module?Mengekspor dengan exportMengimpor dengan importEkspor default vs. ekspor bernama8Mengatur Kode OOP
Mengatur class ke dalam module11Proyek: Perender Bentuk
Penyiapan: class Shape & EksporPewarisan class CircleOverride & Method LuasPenghitung Shape Statis14Sistem Manajemen Perpustakaan
Merancang PerpustakaanClass Book dengan CompositionValidasi Penulis Buku9Method dan property Statis
Level class vs. level instanceProperty StatisMethod Utilitas StatisTantangan RangkumanLatihan sendiri: Compiler JavaScript online