微信小程序之this作用域
在微信小程序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({ }); }