javascriptの勉強をしており、書籍を見ていると、下のようなパターンのコードがでてきます。
関数の中に関数があるパターンです。

function counter(){
    var n = 0;
    return{
        count: function(){return n++;},
        reset: function(){n = 0;}
    };
}
var c = counter(), d = counter();
console.log(c.count());//0
console.log(c.count());//1

こちらのコードのcountメソッドを呼び出すと最初になぜか0になります。
n++としているので最初に呼び出しときに1になるのでは?と思ってしまいます。
なぜ0になるのか教えていただけますでしょうか。