HTML5 Zone is brought to you in partnership with:

Microsoft MVP in ASP.NET/IIS, Senior Software Engineer, Microsoft Certified, MCC (Microsoft Community Contributor), Technology Enthusiast, Speaker, Blogger, Technical Books Reviewer, having several years of experience working in Software Development and Engineering with primary focus on Microsoft technologies. Passionate about contributing to Microsoft Community especially concerning Web Development. Interested in scientific research, BSc., MSc. (candidate) in Computer Sciences, Intelligent Systems. Hajan is a DZone MVB and is not an employee of DZone and has posted 40 posts at DZone. View Full User Profile

Quick tip: How to get started quickly with OOP-like coding style in JavaScript?

03.22.2013
| 2508 views |
  • submit to reddit

Writing JavaScript code in OOP style is something which is actively promoted in the last few years...

How to get started quickly with simple and straight forward example? Look at this one:

var Hobbit = function(name){
   this.Name = name;
   var steps = 0;  
   this.Run = function(speed, distance){
      //hobbit running algorithm goes here
      while(steps < distance){ 
        console.log(steps); //for debugging purpose only
        steps+=speed;
      }
   }
}

//all members containing this keyword are public members. Therefore we have one property Name which is public, and function/method Run accepting two parameters speed and distance, which is also public. See the usage bellow. 

//implementation

var frodo = new Hobbit("Frodo");
console.log(frodo.Name); //prints "Frodo"

//you can call the Run function/method too

frodo.Run(10, 2000); //prints all the iterations inside 'while' with the current 'steps' value

...and yes, you can create new closed 'things' representations, instantiate one inside other and do entire way of OOP-like development. 

I'm sure this was pretty straight forward, simple and easy to understand.

Happy Coding!
Hajan



Published at DZone with permission of Hajan Selmani, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)