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

js return 如何解释

js return 如何解释

慕田峪7331174 2019-02-13 15:19:43
   getUserData = function () {        $.ajax({            "type": "get",            "url": imgJson,            "async": false,            "success": function (data) {                if(data.code==0){                    res = data.code;                }else{                    res = data.data;                }            }        });        return res;    };执行这个方法的时候是 return 返回值;还是在以下success之后就res全局污染了"success": function (data) {                if(data.code==0){                    res = data.code;                }else{                    res = data.data;                }            }
查看完整描述

1 回答

?
慕神8447489

TA贡献1780条经验 获得超1个赞

两个都对


你的这个ajax是同步的请求 不是异步 就是说等请求结果返回了之后 代码才能继续执行 所以这里的res就是success执行完成后的结果

全局污染了, 因为变量没有使用var或者let来声明 就会被声明在全局变量上 所以也是全局污染

如果你把ajax中参数 改下 "async": true, 就看出区别了 

那在请求返回之前 全局变量res都是undefined 所以还是getUserData函数返回值是undefined 但是在一段时间后其他地方直接使用res变量的话 还是能获取到值的 不过多少时间后能用 就不确定了


查看完整回答
反对 回复 2019-02-25
  • 1 回答
  • 0 关注
  • 358 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号