牧羊人nacy
2023-10-14 16:47:04
我想知道為什么全局變量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
提交
取消