为了账号安全,请及时绑定邮箱和手机立即绑定

Nest函数更新全局变量Javascript

Nest函数更新全局变量Javascript

牧羊人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();


查看完整回答
反对 回复 2023-10-14
  • 1 回答
  • 0 关注
  • 68 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信