可变的变化本身

时间:2017-03-18 12:33:51

标签: javascript variables

我试图在js中编写一个蛇游戏时遇到一个小问题。

我有这个功能:

function move() {

    var aux = [];
    aux = snake.position[snake.position.length - 1];
    console.log(aux);

    if (snake.direction == 'r') {
        snake.position[snake.position.length - 1][1] += 1;
    };

    console.log(aux);
    //updateSnake();
    snake.position[snake.position.length - 2] = aux;
    updatePosition(snake.position);
};

正如你所看到的,问题是如果没有我对它做任何事情,那么aux正在改变自己。第一个console.log的值与第二个不同!这不像我正在改变它的原型。

你们能帮助我吗?

1 个答案:

答案 0 :(得分:0)

if (snake.direction == 'r') {
    snake.position[snake.position.length - 1][1] += 1;
}

以上行改变了数组aux。第一个console.log()返回[10,12],如上述评论中所述。之后,if语句递增snake.position[snake.position.length - 1][1],这是变量的值。第二次调用console.log()时,变量aux被评估为[10,12+1],相当于[10,13],这是预期的结果。