微信小程序之this的指代

本文深入解析微信小程序中this关键字的使用场景与问题,特别是在wx.request中的应用。通过实例讲解了如何正确使用this.setdata更新data数据,避免常见错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

微信小程序之this的指代

首先我们要搞清楚this是用来干嘛的,this就是用来指代当前的对象的,一般说来在哪个对象里那么就指代哪个

  1. 在微信中是使用this.setdata来修改data数据的,但是当我们使用wx.request时,我们得到的数据要在wx.request中的success方法中来调用的,所以现在问题来了,如果我们直接用this.setdata的话会出现什么结果呢?
    在这里插入图片描述
    由上图可知如果直接调用会报错,下面我们来分析一下为什么会报错

  2. 根据我之前阐述的,this是指代当前对象的,所以我们来看一下报错时this所指的对象是什么?
    在这里插入图片描述
    这里可以看出直接调用时,this.setdata的this指向的是_requestObject(这里的_requestObject就是传给wx.request方法的对象数组,如下图所示)
    在这里插入图片描述

  3. 所以我们只有使用在Page函数里的那个对象才可以调用setdata方法,从而改变data数据的,也就是说让this指向下图这个对象时才可以调用setdata方法
    在这里插入图片描述

  4. 所以我们通过 var that = this将Page函数中的对象保存,然后再通过that.setdata()来达到修改data数据的目的

综上所述,当遇到this指代的对象改变时,可以通过将其赋值给另一个变量来解决(当然js中this指代的情况很复杂,这里只是其中的一类情况)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值