this在箭头函数中代表谁?

来源:6-7 博客详情功能--云数据库多集合查询

白云南方

2020-12-30

老师,你好。在page中,有这么一段程序:

  onLoad: function (options) {
    let groupid = options.groupid

    if (groupid) {
      //======(1)=======
      wx.cloud.callFunction({
        name: 'group',
        data: {
          groupid,
          $url: 'detail'
        }
      }).then(res => {
        console.log(res)
        const data = res.result.list[0]
        if (data) {
          groupInfo = data
          this.setData({
            groupid: data._id,
            groupname: data.name,
            groupdesc: data.desc
          })
        }
      })

	  //======(2)=======
      // db.collection('group').doc(groupid).get().then((res) => {
      //   console.log(res)
      //   groupInfo = res
      //   this.setData({
      //     groupid: res._id,
      //     groupname: res.name,
      //     groupdesc: res.desc
      //   })
      // })
    }
  },

第(1)段通过云函数返回数据,再用this.setData({})给本地数据赋值;
第(2)段直接访问云数据库,再用this.setData({})给本地数据赋值。
为什么第(1)段正确执行,第(2)段找不到变量(groupid,groupname,groupdesc),我估计是this的问题。

问题是:在这里,this代表谁?

写回答

1回答

谢成

2020-12-30

箭头函数的使用可以看下我的一门es6免费课程:https://www.imooc.com/learn/1246


箭头函数里没有this,会沿着作用域链找到外层的this

0
0

微信小程序云开发-从0打造云音乐全栈小程序

横跨小程序端、云后端、CMS一站式云开发的小程序全栈课程

1938 学习 · 2768 问题

查看课程