Over a million developers have joined DZone.
Platinum Partner

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

· Web Dev Zone

The Web Dev Zone is brought to you by Stormpath—offering a pre-built Identity API for developers. Easily build powerful user management, authentication, and authorization into your web and mobile applications. Download this Forrester report on the new landscape of Customer Identity and Access Management.

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



The Web Dev Zone is brought to you by Stormpath—offering a pre-built, streamlined User Management API for building web and mobile applications. Check out our top pointers for designing your REST API.

Topics:

Published at DZone with permission of Hajan Selmani , DZone MVB .

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}