Codecademy export
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(newIsCheckedOut) { | |
this._isCheckedOut = newIsCheckedOut; | |
} | |
toggleCheckOutStatus() { | |
this.isCheckedOut = !this.isCheckedOut; | |
} | |
getAverageRating() { | |
let ratingSum = this.ratings.reduce((accumulator, rating) => accumulator + rating); | |
return ratingSum / this.rating.length; | |
} | |
addRating(value) { | |
this.rating.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()) | |
/* | |
class new CD extends Media () { | |
constructor(artist, title, songs) { | |
super(title) | |
this._artist = artist; | |
this._songs = songs; | |
} | |
get artist() { | |
return this._artist; | |
} | |
get songs() { | |
return this._songs; | |
} | |
} | |
*/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment