メソッドがほとんどないjavascriptの単純なオブジェクトがあります..そのうちの2つは、window.setTimeout
関数で定期的に呼び出したいです。私の現在のコードは次のようになります。
var shakeResolver = function () {
var resolveTimeout;
console.log(this);
var context = this;
this.startShakeResolve = function () {
this.resolveTimeout = window.setTimeout(this.call(context.stopShakeResolve, context), 2000);
$(window)
.on('devicemotion', this.onDeviceMotion);
};
this.onDeviceMotion = function (event) {};
this.stopShakeResolve = function (context) {
this.resolveTimeout = window.setTimeout(context.startShakeResolve, settings.interval);
};
}
問題は、スコープがどのように機能しているかを誤解しているようです。タイムアウトから関数を呼び出すと、実際には存在しない別のコンテキストから呼び出されるように見えますか?