Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Challenge: Add Methods to a Class | Mastering JavaScript Classes and Inheritance
Advanced JavaScript Mastery

book
Challenge: Add Methods to a Class

Task

You're working with a Book class that represents books in a library. Each book has a title, author, and genre. Your task is to add methods to this class to retrieve information and update the genre.

  1. Complete the Method Definitions:
    • In the existing Book class, add a method called getInfo that returns a string in the format: "Title by Author is a Genre book.";
    • Add another method named updateGenre that takes one parameter, newGenre, and updates the book's genre property.
  2. Test the Methods:
    • An instance of Book named book1 has already been created with the values "The Great Gatsby", " F. Scott Fitzgerald", and "Classic";
    • Call getInfo to log information about the book;
    • Use updateGenre to change the genre to "Historical Fiction";
    • Call getInfo again to confirm the genre update.
class Book {
constructor(title, author, genre) {
this.title = title;
this.author = author;
this.genre = genre;
}

_____() {
return `${this._____} by ${this._____} is a ${this._____} book.`;
}

_____(_____) {
this._____ = _____;
}
}

// Instance
const book1 = new Book('The Great Gatsby', 'F. Scott Fitzgerald', 'Classic');

// Test the methods
console.log(book1._____()); // Expected: The Great Gatsby by F. Scott Fitzgerald is a Classic book.
book1._____(_____); // Update genre
console.log(book1._____()); // Expected: The Great Gatsby by F. Scott Fitzgerald is a Historical Fiction book.
1234567891011121314151617181920212223
class Book { constructor(title, author, genre) { this.title = title; this.author = author; this.genre = genre; } _____() { return `${this._____} by ${this._____} is a ${this._____} book.`; } _____(_____) { this._____ = _____; } } // Instance const book1 = new Book('The Great Gatsby', 'F. Scott Fitzgerald', 'Classic'); // Test the methods console.log(book1._____()); // Expected: The Great Gatsby by F. Scott Fitzgerald is a Classic book. book1._____(_____); // Update genre console.log(book1._____()); // Expected: The Great Gatsby by F. Scott Fitzgerald is a Historical Fiction book.
copy
  • Define a method named getInfo in the Book class;
  • In the getInfo method, return a string that uses this.title, this.author, and this.genre;
  • Define a method named updateGenre that takes one parameter, newGenre;
  • In the updateGenre method, set this.genre to newGenre;
  • Call getInfo on book1 to log the initial information about the book;
  • Use updateGenre on book1 to change the genre to "Historical Fiction";
  • Call getInfo on book1 again to confirm the updated genre.
class Book {
constructor(title, author, genre) {
this.title = title;
this.author = author;
this.genre = genre;
}

getInfo() {
return `${this.title} by ${this.author} is a ${this.genre} book.`;
}

updateGenre(newGenre) {
this.genre = newGenre;
}
}

// Instance
const book1 = new Book('The Great Gatsby', 'F. Scott Fitzgerald', 'Classic');

// Test the methods
console.log(book1.getInfo()); // Output: The Great Gatsby by F. Scott Fitzgerald is a Classic book.
book1.updateGenre('Historical Fiction'); // Update genre
console.log(book1.getInfo()); // Output: The Great Gatsby by F. Scott Fitzgerald is a Historical Fiction book.
1234567891011121314151617181920212223
class Book { constructor(title, author, genre) { this.title = title; this.author = author; this.genre = genre; } getInfo() { return `${this.title} by ${this.author} is a ${this.genre} book.`; } updateGenre(newGenre) { this.genre = newGenre; } } // Instance const book1 = new Book('The Great Gatsby', 'F. Scott Fitzgerald', 'Classic'); // Test the methods console.log(book1.getInfo()); // Output: The Great Gatsby by F. Scott Fitzgerald is a Classic book. book1.updateGenre('Historical Fiction'); // Update genre console.log(book1.getInfo()); // Output: The Great Gatsby by F. Scott Fitzgerald is a Historical Fiction book.
copy

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 5
some-alt