// musicPlayerModule.js
var musicPlayer = function () {
// Let's make sure no one can directly access our songList
var songList = ['California Girls', 'California Dreaming', 'Hotel California'];
// We'll expose all these functions to the user
function play () {
console.log('Im playing the next song!');
}
function pause () {
console.log('Im paused!');
}
function addTrackToMusicQueue (track) {
songList.push(track);
console.log('I added a song');
}
function showNextTrack () {
console.log('My next track is', songList[0]);
}
// Let's hide this function
function loadSong() {
filesystem.loadNextSong();
}
return {
playMusic: play,
pauseMusic: pause,
showNextTrack: showNextTrack,
addTrack: addTrackToMusicQueue
}
}
const musicModule = musicPlayer(); // invoke our musicPlayer to return it's object (module)
musicModule.playMusic(); // 'Im playing the next song!'
musicModule.pauseMusic(); // 'I'm paused!'
musicModule.showNextTrack(); // 'The next track is California Girls'
// Things we can't access...
musicModule.loadSong(); // error: not a function
musicModule.songList.push('White Rabbit'); // undefined error
Created
May 22, 2017 13:07
-
-
Save zcaceres/a4dd9f261822ad028994a10923b7e45d to your computer and use it in GitHub Desktop.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment