我在Javascript中的setInterval()方法有問題。我的主類:Javascript setInterval不適用於此。對象
var sq1 = new Square(20, 20);
window.onkeydown = function (e)
{
var key = e.keyCode ? e.keyCode : e.which;
if (key == 38)
{
sq1.moveUp();
}
}
而且我有以下構造函數。
function Square(x,y)
{
var multiplicator = 10;
this.xPos = x;
this.yPos = y;
this.domObj = document.createElement("div");
this.domObj.style.position = "absolute";
this.domObj.style.left = this.xPos * multiplicator + 'px';
this.domObj.style.top = this.yPos * multiplicator + 'px';
this.domObj.style.width = multiplicator + 'px';
this.domObj.style.height = multiplicator + 'px';
this.domObj.style.backgroundColor = "black";
document.getElementById("idCanvas").appendChild(this.domObj);
this.moveUp = function()
{
this.yPos--;
this.domObj.style.top = (this.yPos * multiplicator) + 'px';
}
}
那麼現在正常工作,只需將每個keyUp事件移動10px即可。 但是我想在keyUp事件之後每1000個毫秒自動調用一次this.moveUp()。 但當我嘗試這個辦法:
this.moveUp = function()
{
setInterval(function()
{
this.yPos--;
this.domObj.style.top = (this.yPos * multiplicator) + 'px';
}, 1000);
}
我得到一個錯誤,「這是空值。
我該如何解決它(最好沒有jQuery)?
向下投票吧?以爲我做得對,但也許不是? – Ribs
不是「範圍」而是「目標」。另外,不涉及任何課程。 – Ben
是的,我知道沒有類,但我雖然爲了清晰起見,我會使用OP使用的相同條款。 – Ribs