JavaScript is a powerful and old language that was not thought to work with objects, though, we can make it a bit object oriented implementing our own objects and classes like this:
Create a class
To make a class we can directly build it a constructor and inside it place all the class properties and methods like this:
function CreateMyObject() { //Here all the stuff }
Adding public and private variables
You can make a public variable using the keyword this.
function CreateMyObject() { this.publicVar = 'Im public'; var privateVar = 'Im private'; }
Adding public and private methods
Following the same as before, but we have to ways of setting the pointer to the method.
function CreateMyObject() { this.someMethod = someMethod; function someMethod() { alert('Hello Im a method'); } this.someOtherMethod= function () { alert('Hello Im another method'); } function privateMethod(){ alert('Im a private method.'); } }
With the first option you could make a list of public methods in the top and then write the methods down, with the second you don’t need to maintain a list.
Putting all of it together
Just to have it as an example:
function CreateMyObject() { // Properties this.publicVar = 'Im public'; var privateVar = 'Im private'; //Methods this.someMethod = someMethod; function someMethod() { alert('Hello Im a method'); } this.someOtherMethod= function () { alert('Hello Im another method'); } function privateMethod(){ alert('Im a private method.'); } }
Using it
var MyObject = new CreateMyObject(); alert(MyObject.publicVar); alert(MyObject.privateVar); // This will not work. Its private!! MyObject.someMethod(); MyObject.someOtherMethod();
Thanks to webmonkey, about and codeproject.