我想创建一个prototype
有自己作用域的函数。为此,我使用了一个匿名函数,但我找不到访问对象成员的方法。
这是我想要实现的简化版本:
function F() {
this.counter = 0;
}
F.prototype.increment = (function() {
var lastIncrementTime = -1;
var caller = this; // <--- it fails here because this is the Window object
return function(time) {
if (time > lastIncrementTime) {
caller.counter++;
lastIncrementTime = time;
return caller.counter;
}
return caller.counter;
}
})();
f = new F();
f.increment();
我知道它失败了,因为这没有引用F
或f
对象。
有没有办法访问它?