我想知道为什么全局变量x和y没有从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);
1 回答
慕容708150
TA贡献1831条经验 获得超4个赞
该函数的参数也被命名为x和y,因此它们隐藏了全局变量。在这种特殊情况下,您似乎只想使用全局变量,因此您可以简单地从两个函数中删除参数。
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();
添加回答
举报
0/150
提交
取消