2011-08-30 16 views
5

Jestem początkujący z JavaScript więc proszę o cierpliwość =)liczba wywołań funkcji

Próbuję napisać funkcję, która zlicza ile razy to jest tzw. To, co mam tak daleko jest funkcją z licznikiem, który jest zwiększany wyraźnie:

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()); 

Ale zastanawiam się jak nazwać tylko ob();, więc funkcja mogłaby zwiększyć połączeń automatycznie skierowane do siebie. Czy to możliwe, a jeśli tak, to w jaki sposób?

Odpowiedz

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

var ob = increment(); 
+2

+1 do rzucania zamknięć do noob :) – naveen

+1

+1. @naveen: Noob wydaje się kierować tą drogą sam. :) – Shef

+0

@Shef: Powiedziałem, że to dobrze. Minęło trochę czasu, zanim zdałem sobie sprawę, że są zamknięte. Ale potem był moim drugim językiem. drobny profit, który ma alarmy :) – naveen

0
ob = function(){ 
    ++ob.i || (ob.i=1); 
    return ob.i; 
} 
Powiązane problemy