2011-08-30 57 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; 
}