变量不断重置为其原始值

Variable keeps getting reset to its original value

本文关键字:原始 变量      更新时间:2023-09-26

我的代码:

function send() {
    var nop = 6;
    var send_this = {
        nop: nop
    };
    $.ajax({
            type: "GET",
            data: send_this,
            url: "example.com",
            success: function(r) {
                var obj = JSON.parse(r);
                nop = obj.nopval;
                /* some other stuffs*/
            }
        )
    };
}

现在,由于我已经将nop设置为 6 ,它将通过 6。但是在返回时,json 响应obj.nopval将返回 12,我想将其设置为 nop .这样下次它发送 12 并返回 18 等等......

这里发生的事情是,它发送 6 并返回 12,但再次发送 6 并再次返回 12。变量未更新。

您正在函数中声明和初始化 nop 变量,因此每次调用函数时,它都会从 6 点开始。 nop需要存在于函数之外的某个位置才能使更改持久化:

var nop = 6; // outside the function
function send() {
    var send_this = {
        nop: nop
    };
    $.ajax({
        type: "GET",
        data: send_this,
        url: "example.com",
        success: function(r) {
            var obj = JSON.parse(r);
            nop = obj.nopval;
            /* some other stuff*/
        }
    });
}

您需要在函数外部定义变量,在 ajax 回调函数中使用它,因此每次运行函数时,它都会将值重置为 6。