ajax可以获取作用域的值吗,javascript – 为什么ajax调用中的闭包可以访问外部作用域?...

我读到了关于JavaScript闭包的内容,我认为我理解它,但显然我没有.

成功函数在请求成功时调用.这意味着当闭包时(function(){

返回obj;

})();执行范围,内部成功函数,不再是函数(evt){…},那么它如何仍然可以访问obj?

封闭如何在这个例子中工作

编辑(在obj之前有var)

function (evt) {

var obj = evt.data.obj,

$.ajax({

type: "POST",

url: url,

data: data,

success: function () {

var o = (function () {

return obj;

})();

}

});

}

解决方法:

在JS中,范围受功能限制.

变量作用域的函数内部的所有内容都可以访问该变量 – 包括其他函数 – 除非在较窄的范围内有另一个同名变量.

也就是说,在这个例子中,没有var关键字来定位obj的范围,所以它是一个全局的.编辑问题后删除

标签:javascript,jquery,closures

来源: https://codeday.me/bug/20190903/1797536.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值