试验了一下js中闭包的概念,发现没有达到小弟我的预期,请问一下

试验了一下js中闭包的概念,发现没有达到我的预期,请教一下!
我自己写了一个很简单的js代码,我期待的是,每次访问闭包的时候, n+1,并且alert出来。代码如下:

<html><head><title>xyz</title></head><body> 
<input type="button" id="btn" value="ClickToSee" onclick=f() /> 
<script type="text/javascript"> 
function FP() { 
        var n = 0;
return function(){return n=n+1;}
}
function f()
{
var fObj = FP();
alert(fObj());
var fObj2 = FP();
alert(fObj2());
}
</script></body></html> 

我期待的结果是,当我点击按钮的时候,弹出两次alert,一次显示1,一次显示2.
但是实际的结果是两次都显示了1.这是为什么呢?

请指点!
------解决思路----------------------
因为每次调用FP();返回的对象 和内部的n都不一样,每次访问都创建一个n
------解决思路----------------------
function FP() { 
  var n = 0;
  return function(){return n=n+1;}
}

function f() {
  var fObj = FP();
  alert(fObj());
  alert(fObj());   
}
f()