小编DaM*_*100的帖子

更改对象的属性,即使它们应该通过Value传递

我当时在做一个小JavaScript项目,以制作基于图块的游戏(不用做作业,不用担心!),但是我的“ tile”类遇到了问题。

每个“平铺”都具有X和Y属性,因为其在网格上的X和Y位置。网格存储为这些图块的二维数组。磁贴的构造如下:

class tile {
    constructor(x,y) {
        this.x = x;
        this.y = y;
        console.log(`Genned Tile: ${x} , ${y}`);
    }
}
Run Code Online (Sandbox Code Playgroud)

还有一个小的日志消息

因此,我写了一个小循环,用“ tile”对象填充数组:

for (var x = 0; x < width; x++) {
    for (var y = 0; y < height; y++) {
        tiles[x,y] = new tile(x,y);
    }
}
Run Code Online (Sandbox Code Playgroud)

宽度和高度都设置为5。这应该填充插槽0-4。

但是,显示图块时,X坐标是错误的!我将附上片段,向您展示我的意思

class tile {
    constructor(x,y) {
        this.x = x;
        this.y = y;
        console.log(`Genned Tile: ${x} , ${y}`);
    }
}
Run Code Online (Sandbox Code Playgroud)

Y坐标看起来正确,但是X坐标仍然为4!记录消息似乎告诉我,它在构造函数中输入了正确的数字,因此我不确定X坐标为什么会像这样更改。我做了一些研究,发现“ x”和“ y”数字应该按值传递(它们是基元),因此循环中对“ x”和“ y”的任何更改都不会影响我的课程,对吧?

任何帮助将不胜感激。

谢谢阅读!:)

javascript arrays class node.js

2
推荐指数
1
解决办法
24
查看次数

标签 统计

arrays ×1

class ×1

javascript ×1

node.js ×1