变量不断重置为原始值

我的代码:

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。