この質問をする方法さえわかりませんが、コードを可能な限り単純な例にまとめました。
function Handler() {}
Handler.prototype.texts = [];
Handler.prototype.add = function(d) {
this.texts.push(d);
};
Handler.prototype.tick = function() {
console.log( this.texts );
};
var x = new Handler();
setInterval( x.tick, 5000 );
x.add('beatles');
setInterval が x.tick を呼び出すと、this.texts に undefined の値が与えられます。もちろん、this
. 私は問題を解決することができますが、
setInterval( x.tick, 5000, x );
// and ... in the prototype
Handler.prototype.tick = function(myObj) {
console.log( myObj.texts );
}
少しゴツい感じです。これを行うより良い方法はありますか?