Nest函数更新全局变量Javascript



我想知道为什么全局变量xy没有从while循环中的函数"move"更新。有人能解释一下为什么这不起作用,以及我应该如何解决吗?

var x = 10;
var y = 7;
var destX = 5;
var destY = 5;
function simulate(x, y) {
while (x !== destX && y !== destY) {
move(x, y);
}
console.log("arrived")
}
function move(x, y) {
if (y !== destY) {
if (destY > y) {
y = y + 1;
} else {
y = y - 1;
}
} else {
if (destX > x) {
x = x + 1;
} else {
x = x - 1;
}
}
}
simulate(x, y);

函数的参数也被命名为xy,因此它们隐藏全局变量。在这种特殊情况下,您似乎只想使用全局变量,所以您可以简单地从两个函数中删除参数。

var x = 10;
var y = 7;
var destX = 5;
var destY = 5;
function simulate() {
while (x !== destX && y !== destY) {
move();
}
console.log("arrived")
}
function move() {
if (x !== destX) {
if (destY > y) {
y = y + 1;
} else {
y = y - 1;
}
} else {
if (destX > x) {
x = x + 1;
} else {
x = x - 1;
}
}
}
simulate();

最新更新