微信小程序之this作用域

发布时间:2021-04-07 12:56:58    发布者:文昌文城莱奥网络技术工作室    浏览次数:797

    在微信小程序wx.request({});方法的回调函数success(){}或fail(){}中如果使用this.data来获取,会出现获取不到的情况,调试页面也会报undefined。这是因为:

1.回调函数success(){}或fail(){}是一个闭包函数;

2.在javaScript中,this代表着当前对象,会随着程序执行过程中的上下文改变。

    所以,在wx.request({});方法的回调函数success(){}或fail(){}中,对象已经发生改变,已经不是wx.request({});方法对象了,data属性也不存在了。解决办法有两个:

在wx.request({});之前,运用var that=this;把this对象复制到临时变量that中。

运用箭头:

     success:res=>{
       this.setData({

         });
     }