Menu
Coddy logo textTech

Валидация автора книги

Часть раздела Объектно-ориентированное программирование путешествия по JavaScript на Coddy — урок 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

Таким образом, книга все равно должна создаваться, даже если автор невалиден.

Попробуйте сами

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); // Should output: "Author: J.K. Rowling"

// Невалидные случаи (должны вывести сообщение, но всё равно создать книгу)
const invalid1 = new Book('Fake Book', 'String Author');

Все уроки раздела Объектно-ориентированное программирование