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
ます。
アクセスする方法はありますか?