nepsdotin nepsdotin - 1 year ago 137
Javascript Question

How to declare a static variable in Javascript

In the following code, I would like to have a counter to keep track of the number of Person objects created. This code is not doing so, how would I accomplish that?

function Person(){ = "Peter";
this.counter = this.counter + 1;

Person.prototype.counter = 0;

var p1 = new Person;
var p2 = new Person;

Answer Source
function Person(){ = "Peter";

Person.counter = 0;

var p1 = new Person();
var p2 = new Person();

Make the "static" variable a property of the Person function, rather than the prototype, and use Person instead of this inside the constructor.

This is possible because JavaScript functions are first-class (i.e. they are objects), so can have properties of their own.

Here's a working example of the above code.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download