From a36ab8a96d9493fc0e3e148c2ca505fee8db86c6 Mon Sep 17 00:00:00 2001 From: antwonlee Date: Wed, 1 Jun 2016 01:50:45 -0500 Subject: [PATCH] Add inheritance in javascript Good read: Inheritance and the prototype chain https://goo.gl/Im9q4k --- object_oriented_javascript/playlist/media.js | 13 +++++++++++++ object_oriented_javascript/playlist/song.js | 12 ++---------- 2 files changed, 15 insertions(+), 10 deletions(-) create mode 100644 object_oriented_javascript/playlist/media.js diff --git a/object_oriented_javascript/playlist/media.js b/object_oriented_javascript/playlist/media.js new file mode 100644 index 0000000..be6fa6e --- /dev/null +++ b/object_oriented_javascript/playlist/media.js @@ -0,0 +1,13 @@ +function Media(title, duration) { + this.title = title; + this.duration = duration; + this.isPlaying = false; +} + +Media.prototype.play = function() { + this.isPlaying = true; +}; + +Media.prototype.stop = function() { + this.isPlaying = false; +}; diff --git a/object_oriented_javascript/playlist/song.js b/object_oriented_javascript/playlist/song.js index f9d6e20..90b6131 100644 --- a/object_oriented_javascript/playlist/song.js +++ b/object_oriented_javascript/playlist/song.js @@ -1,17 +1,9 @@ function Song(title, artist, duration) { - this.title = title; + Media.call(this, title, duration); this.artist = artist; - this.duration = duration; - this.isPlaying = false; } -Song.prototype.play = function() { - this.isPlaying = true; -}; - -Song.prototype.stop = function() { - this.isPlaying = false; -}; +Song.prototype = Object.create(Media.prototype); Song.prototype.toHTML = function() { var htmlString = '