Click here to Skip to main content
6,596,602 members and growing! (20,361 online)
Email Password   helpLost your password?
Web Development » Client side scripting » General     Intermediate

Using Objects In JavaScript

By Manikandan.net

How to use objects in JavaScript.
Javascript, HTML, Visual Studio, Dev
Posted:8 Mar 2006
Views:22,632
Bookmarked:9 times
Announcements
Loading...
 
Search    
Advanced Search
Add to IE Search
printPrint   add Share
      Discuss Discuss   Broken Article?Report  
6 votes for this article.
Popularity: 2.18 Rating: 2.80 out of 5
2 votes, 33.3%
1

2

3
1 vote, 16.7%
4
3 votes, 50.0%
5

Introduction

JavaScript can not only do client side validation, but can also solve complex problems. Here, I am going to explain how to use classes in JavaScript.

OOPs to POPs

Most programmers use hundreds of functions in a single web page or in a separate js file, and it is too difficult to make changes on them because they are function oriented. Think about object oriented programming. OOP makes things simple and easy as we can split our objectives into objects. We are not lucky! JavaScript doesn't have support for OOP but it supports prototype oriented programming (POPs).

Creating the Employee Object

Consider the typical Employee object. An Employee object may have some fields and functions. In this example, I am going show you how to create an Employee object, and an EmployeeCollection object which will hold a number of Employee objects.

<script>
/*
Employee
--------
    Fields:
      Id
      Name

EmployeeCollection
-------------------
    Fields:
        indexer
        count
    Functions:
        Add
        Delete
        Display
*/


//This Function is used to create the collection object.

//Copy this function to create your own collection objects.

function CreateCollection(ClassName)    
{
    var obj=new Array();
    eval("var t=new "+ClassName+"()");
    for(_item in t)
        {
            eval("obj."+_item+"=t."+_item);
        }
    return obj;
}
    
function EmployeeCollection()
{
    this.Container="";
    this.Add=function(obj)
    {
        this.push(obj);
    }
    this.Display=function()
    {
        str="<Table border=1 width=200 ><tr><td>" + 
            "<b>Name</b></td><td><b>" + 
            "Age</b></td><tr>";
        for(i=0;i<this.length;i++)
            str+="<Tr><Td>"+this[i].Name+ 
                 "</Td><Td>"+this[i].Age+
                 "</Td></Tr>";
        str+="</Table>";
        this.Container.innerHTML=str;
    }
}
    
function Employee(Name,Age)
{
    this.Name=Name;
    this.Age=Age;
}
    
//Using the EmployeeCollection and Employee Obejcts

empCollection=new CreateCollection("EmployeeCollection");     
empCollection.Add(new Employee("Jax",26));
empCollection.Add(new Employee("Shionk",45));
empCollection.Add(new Employee("Maya",25));
empCollection.Container=document.getElementById("grid");
alert(empCollection[0].Name);
empCollection.Display();

</script>

How it works

"eval" is used to perform dynamic operations. We can declare variables at runtime. The "CreateCollection" function is used to create a collection object. A collection object is nothing but a combination of arrays and any business entity. Here the entity object is EmployeeCollection. "CreateCollection" first creates the array object and it will add all the fields and functions from EmployeeCollection to the object. So we will get both Array, and EmployeeCollection's fields and functions.

Conclusion

At last, we implemented some of the OOP concepts in JavaScript. I'm now trying to implement inheritance in JavaScript.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

About the Author

Manikandan.net


Member
"Manikandan Balakrishnan" Working as an IT consultant with LogicaCMG’s Global Service Delivery part-India, he has a good experience on Web/Win development (C#, Asp.net) and enterprise application integration (BizTalk) technologies. Prior to this he worked on world’s biggest e-learning product with Excel Soft Technologies, Mysore.

City: Coimbatore, TN
CreativeManix@gmail.com

Occupation: Web Developer
Location: India India

Other popular Client side scripting articles:

Article Top
You must Sign In to use this message board.
FAQ FAQ 
 
Noise Tolerance  Layout  Per page   
 Msgs 1 to 6 of 6 (Total in Forum: 6) (Refresh)FirstPrevNext
GeneralJSOOP Library Pinmemberweerstra3:49 7 Jun '06  
General+= is also slow Pinmemberrmatejka1:27 9 Mar '06  
GeneralRe: += is also slow Pinmembersrinath g nath21:49 4 Nov '07  
Generaleval kills performance Pinmemberrmatejka0:05 9 Mar '06  
GeneralRe: eval kills performance PinmemberJuergen Posny1:12 9 Mar '06  
GeneralRe: eval kills performance Pinmemberseansulli7:10 12 Nov '07  

General General    News News    Question Question    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

PermaLink | Privacy | Terms of Use
Last Updated: 8 Mar 2006
Editor: Smitha Vijayan
Copyright 2006 by Manikandan.net
Everything else Copyright © CodeProject, 1999-2009
Web13 | Advertise on the Code Project