Build a Library

PHOTO EMBED

Wed Aug 17 2022 19:51:29 GMT+0000 (Coordinated Universal Time)

Saved by @cruz #javascript

class Media {
  constructor(title) {
    this._title = title;
    this._isCheckedOut = false;
    this._ratings = [] ;
  }
  
  get title() {
    return this._title;
  }
  
  get isCheckedOut() {
    return this._isCheckedOut;
  }
  get ratings() {
    return this._ratings;
  }
  set isCheckedOut(value){
    this._isCheckedOut = value;
  }
  toggleCheckOutStatus(){
    this.isCheckedOut = !this.isCheckedOut;
  }
  
  takeVacationDays(daysOff) {
    this._remainingVacationDays -= daysOff;
  }
  getAverageRating(){
let ratingsSum = 
this.ratings.reduce((accumulator,rating) =>
accumulator + rating);
return ratingsSum/ this.ratings.length;
  }
  addRating(value){
    this.ratings.push(value);
  }
}

class Book extends Media {
 constructor(author,title,pages) {
   super(title);
   this._author = author;
   this._pages = pages;
 }
 get author() {
    return this._author;
  }
  get pages() {
    return this._pages;
  }
}
class Movie extends Media {
 constructor(director,title,runTime) {
   super(title);
   this._director = director;
   this._runTime = runTime;
 }
 get director() {
    return this._director;
  }
  get runTime() {
    return this._runTime;
  }
}

const historyOfEverything = new Book('Bill Bryson','A Short History of Nearly Everything',544);
historyOfEverything.toggleCheckOutStatus();
console.log(historyOfEverything.isCheckedOut);
historyOfEverything.addRating(4);
historyOfEverything.addRating(5);
historyOfEverything.addRating(5);


console.log(historyOfEverything.getAverageRating());

const speed = new Movie('Jan de Bont','Speed',116)
speed.toggleCheckOutStatus();
console.log(speed.isCheckedOut);
speed.addRating(1);
speed.addRating(1);
speed.addRating(5);
 console.log(speed.getAverageRating());
content_copyCOPY

https://www.youtube.com/watch?v=_7HStd1Vhlc&ab_channel=Codecademy