Javascript basic concept.....

[@more@]Instance property: property defined in constructor:

function Circle(radius) {this.radius = radius;}Class property: property belongs to class. all instances share the only copy of class property:

Circle.PI = 3.141592;Circle.UNIT = new Circle(1);Instance method:An instance method can be invoked for any instance of a class, but this does not mean that each object contains its own private copy of the method, as it does with instance properties.Instead, instance method is defined by prototype property:

Circle.prototype.area() { // notes: must explicitly specify thiskeyword to propertyreturn Circle.PI * this.radius * this.radius;}Class method: method associated with a class rather than an instance of a class:

Circle.max = function (a,b) {if (a.r > b.r) {return a;}else {return b;}}


Function execute & Call Object Concept

When Invoke a function, the function scope is set to scope chain, and then add a new object known as call object to the front of the scope chain. the call object is initialized with parameters, local variable. If a nested function is invoked, the scope chain includes three objects: its own call object, the call object of outer object , and the global object.

uniqueID = function(){ // user can set id back to 0 by: uniqueID.id = 0 if (!arguments.callee.id) arguments.callee.id = 0; return arguments.callee.id++;};uid = (function(){ // closure, id is persistent and private var id = 0; return function(){ return id++; };})();var ret = "";var i = 10;while (i--) { ret += uniqueID() + "t"; uniqueID.id = 0;}alert(ret);i = 10;ret = "";while (i--) { ret += uid() + "t";}alert(ret);