Skip to content

Instantly share code, notes, and snippets.

@codenameEli
Created April 12, 2019 13:40
Show Gist options
  • Save codenameEli/d424d0770aa1ba863e602dc88b852f6e to your computer and use it in GitHub Desktop.
Save codenameEli/d424d0770aa1ba863e602dc88b852f6e to your computer and use it in GitHub Desktop.
Spiderman Singleton
var Spiderman = (function() {
var _firstName = "Peter";
var _middleName = "Benjamin";
var _lastName = "Parker";
var _secret = "Spidey Senses";
function _getName() {
return _firstName + ' ' + _middleName + ' ' + _lastName;
}
return {
health: 100,
hairColor: "brown",
eyeColor: "hazel",
species: "Human mutate",
superpowers: ["IQ"],
affiliations: ["Avengers", "Fantastic Four"],
partnerships: ["Daredevil", "Venom"],
setHealth: function(value) {
this.health = value;
},
getName: function(secret) {
if (secret !== _secret) throw new Error("Wrong secret.. try again");
return _getName();
}
}
})();
Spiderman.getName('password'); // error
Spiderman.getName('spidey senses'); // error
Spiderman.getName('Spidey Senses'); // "Peter Benjamin Parker"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment