2011-08-30 40 views
5

我是一个JavaScript的初学者,所以请耐心等待=)函数计数调用

我想写一个函数来计算它被调用的次数。我至今是一个计数器功能明确递增:

var increment = function() { 
    var i = 0; 
    this.inc = function() {i += 1;}; 
    this.get = function() {return i;}; 
}; 

var ob = new increment(); 
ob.inc(); 
ob.inc(); 
alert(ob.get()); 

但我想知道如何只ob();调用,因此函数可以增加自身自动进行呼叫。这是可能的,如果是这样,如何?

回答

7
var increment = function() { 
    var i = 0; 
    return function() { return i += 1; }; 
}; 

var ob = increment(); 
+2

+1投掷封闭到一个小白:) – naveen

+1

+1。 @naveen:noob似乎正在朝着他/她自己的方向前进。 :) – Shef

+0

@谢菲:我说的很好。有一段时间我才意识到有关闭。但后来js是我的第二语言。一个有警报框的小振动器:) – naveen

0
ob = function(){ 
    ++ob.i || (ob.i=1); 
    return ob.i; 
}