Thursday

Fixing Object Instances in JavaScript

// object constructor
function ObjectConstructor(a, b, c) {

this.A = a;
this.B = b;
this.C = c;
this.Total = a + b + c;

}

var obj = ObjectConstructor(1, 2, 3);

alert(obj.Total);

If you said the objTotal is 6, then you are wrong? So, what went wrong? The obj has nvr been instantiated. A "new" is omitted in this case.


Do like this to prevent this to be happened.

// object constructor
function ObjectConstructor(a, b, c) {

if (!(this instanceof arguments.callee)) {
return new ObjectConstructor(a, b, c);
}


this.A = a;
this.B = b;
this.C = c;
this.Total = a + b + c;

}

No comments: