Module Pattern Practice
by Steven Senkus
JavaScript
var noteModule = (function () {
var notes = [];
var users = [];
var pkey = 0;
return {
addUser: function (info) {
var newUser = {
key: ++pkey,
data: info
}
users.push(newUser);
},
addNote: function (note) {
var newNote = {
data: note
}
notes.push(newNote);
},
countNotes: function () {
return notes.length;
},
countUsers: function () {
return users.length;
},
readNote: function (index) {
return notes[index];
},
readNotes: function () {
return notes;
},
readUsers: function () {
return users;
},
removeNote: function (note) {
var index = notes.indexOf(note.pkey);
notes.splice(index, 1);
return ''
}
}
})();
noteModule.addUser({
name: 'Steve',
desc: 'Javascript Developer',
});
noteModule.addUser({
name: 'Bill',
desc: 'Ruby Developer'
});
var logNm = function(method) {
console.log(noteModule[method]());
}
logNm('readUsers');
noteModule.addNote('1st Note! Woohoo!');
noteModule.addNote('2nd Note! Meh.');
noteModule.addNote('3rd Note! Whatever.');
noteModule.readNote(0);
logNm('readNotes');
logNm('countNotes');
logNm('countUsers');