Build a Library
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
Comments