Skip to content

Instantly share code, notes, and snippets.

@nordyke
Created December 29, 2011 21:59
Show Gist options
  • Save nordyke/1536397 to your computer and use it in GitHub Desktop.
Save nordyke/1536397 to your computer and use it in GitHub Desktop.
Some JavaScript Patterns
var Class = function(){
//private
var privateVariable = 2;
function privateFunction(){
return 5;
}
//public
return {
publicFunction1 : function(){
return privateFunction();
},
publicFunction2 : function(){
return privateVariable;
}
};
}
//usage
var myObject = new Class();
myObject.publicFunction1(); //returns 5
myObject.publicFunction2(); //returns 2
myObject.privateFunction(); //throws error
myObject.privateVariable(); //throws error
//Immediately Invoked Function Express (IIFE)
//function is wrapped in a closure, and then invoked immediately.
(function(){
// code goes here
})();
//invoked immediately
var Class = (function(){
//private
var privateVariable = 2;
function privateFunction(){
return 5;
}
//public
return {
publicFunction1 : function(){
return privateFunction();
},
publicFunction2 : function(){
return privateVariable;
}
};
})();
//usage
Class.publicFunction1(); //returns 5
Class.publicFunction2(); //returns 2
Class.privateFunction(); //throws error
Class.privateVariable(); //throws error
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment