我使用function()作为类,并使用this.范围创建了一些属性:

function field(newMaxX, newMaxY) {
    this.maxX = newMaxX;
    this.maxY = newMaxY;
}


但这导致此错误:


  未捕获的TypeError:无法设置未定义的属性“ maxX”


我已经用函数的相同用法编写了project且没有错误。

function snake(nX, nY, nScore, nDirection, maxX, maxY, cellSize) {
    this.cells = [];
    this.score = nScore;
    ...
}


JQuery也指出了这个问题:


  jQuery.Deferred异常:无法设置未定义的属性“ maxX”
  TypeError:无法设置未定义的属性“ maxX”


我不知道该如何解决。请帮忙。

最佳答案

好的,我发现了问题。我只是忘记使用new关键字:

gameArea = field(parseInt(MAX_X / CELL_SIZE), parseInt(MAX_Y / CELL_SIZE));


那不起作用,但是可以:

gameArea = new field(parseInt(MAX_X / CELL_SIZE), parseInt(MAX_Y / CELL_SIZE));


谢谢您的意见。

09-20 07:02