博客
关于我
小程序var that=this
阅读量:440 次
发布时间:2019-03-06

本文共 735 字,大约阅读时间需要 2 分钟。

在小程序的JS函数中,通常第一句会声明var that = this,这主要是为了在后续的回调函数中保持对当前函数上下文的引用。这种做法的必要性在于,在异步操作完成后,回调函数的this可能会指向不同的对象,导致无法直接访问原函数的this。通过将当前的this保存到that变量中,可以在回调函数中使用该变量来访问原函数的this,确保能够正确地更新数据。例如,在以下代码中:

Page({  loadUsers: function () {    var that = this;    data: {      questionId: null;      title: null    }    wx.request({      url: 'http://0.0.0.0:5000/question/type=2/2',      method: 'get',      success: function(res) {        console.log(res.data);        var d = res.data['data'];        that.setData({          questionId: d['questionId'],          title: d['title']        });        console.log(that.data.questionId);      }    });  },});

如果不使用var that = this,在回调函数中直接使用this,可能会导致无法访问that.data,从而引发错误。因此,使用var that = this是保持程序正确运行的关键。

转载地址:http://bflyz.baihongyu.com/

你可能感兴趣的文章
Openlayers高级交互(3/20):动态添加 layer 到 layerGroup,并动态删除
查看>>
Openlayers高级交互(6/20):绘制某点,判断它是否在一个电子围栏内
查看>>
Openlayers高级交互(7/20):点击某点弹出窗口,自动播放视频
查看>>
Openlayers高级交互(8/20):选取feature,平移feature
查看>>
Openlayers:DMS-DD坐标形式互相转换
查看>>
openlayers:圆孔相机根据卫星经度、纬度、高度、半径比例推算绘制地面的拍摄的区域
查看>>
OpenLDAP(2.4.3x)服务器搭建及配置说明
查看>>
OpenLDAP编译安装及配置
查看>>
Openmax IL (二)Android多媒体编解码Component
查看>>
OpenMCU(一):STM32F407 FreeRTOS移植
查看>>
OpenMCU(三):STM32F103 FreeRTOS移植
查看>>
OpenMCU(三):STM32F103 FreeRTOS移植
查看>>
OpenMCU(二):GD32E23xx FreeRTOS移植
查看>>
OpenMCU(五):STM32F103时钟树初始化分析
查看>>
OpenMetadata 命令执行漏洞复现(CVE-2024-28255)
查看>>
OpenMMLab | S4模型详解:应对长序列建模的有效方法
查看>>
OpenMMLab | 【全网首发】Llama 3 微调项目实践与教程(XTuner 版)
查看>>
OpenMMLab | 不是吧?这么好用的开源标注工具,竟然还有人不知道…
查看>>
OpenMMLab | 面向多样应用需求,书生·浦语2.5开源超轻量、高性能多种参数版本
查看>>
OpenMP 线程互斥锁
查看>>