var that = this 怎么理解?

来源:3-4 实现个人助手功能清单发布

zhaofeng23

2019-10-04

在小程序的menu.js中:

updateMenuData: function() {
    var that = this
    wx.request({
      url: app.globalData.serverUrl + app.globalData.apiVersion + '/service/menu',
      success: function(res){
        var menuData = res.data.data
        that.setData({
          grids: menuData
        })
      }
    })
  }

函数开始的地方定义
var that = this,然后再后面调用 that.setData(),为什么不直接用 this.setData() 呢?
我自己试了试不定义that,直接调用this.setData()程序会报错,说this没有setData()方法,为什么会这样呢?请老师和高手们点解,谢谢!

写回答

1回答

咚咚呛

2019-10-06

同学可能对前端不太了解。

 that是为了保存页面对象,当进入request之后,this就指向request内的对象了,所以需要提前使用that变量保存页面对象,用来调用setData函数。

2
0

Django+小程序技术打造微信小程序助手

0到1完整项目实战过程,是难得的Django+小程序全栈项目体验。

991 学习 · 507 问题

查看课程