小程序var that=this
2024-09-29 17:33:01
小程序的js函数中,一般第一句就是var 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(this.data.questionId)
}
})
},
这段程序报错:Cannot read property 'questionId' of undefined
这是因为在javascript语言中,this
代表着当前的对象,它在程序中随着执行的上下文随时会变化。当原本的loadUsers函数中调用其它接口比如wx.request或success:function时,this就不再代表loadUsers函数,因此就不能由this找到之前定义的data。this包含了当时页面的初始值,state,以及当前你自己定义的函数。解决方法就是用一个that记录loadUsers函数中的这些内容,从而能在接口中使用这些值。
最新文章
- Atitit linux获取项目运行环境版本
- rdlc报表相关
- c++ shared_ptr 使用注意事项. 2
- iOS 动态特性和RunTime
- Centos 6.4 Linux 相关问题总结
- 在ubtuntu中使用包管理器 linux-brew
- Java网络编程基础(Netty预备知识)
- 1-express学习
- Fiddler 抓包工具总结【转载】
- 4.update更新和delete删除用法
- centos7----pstree
- Java 8 新特性-菜鸟教程 (1) -Java 8 Lambda 表达式
- 使用不同的方法计算TF-IDF值
- Elasticsearch cluster health: yellow unassigned shards
- 网站遭受CC攻击的解决办法
- Kafka一些常见资源汇总
- Couchbase集群
- 【Python学习笔记】
- Linux命令-安全复制命令:scp
- Hello Vizhub
热门文章
- try catch finally 与continue的使用
- java邮件开发
- Spring Boot 运行原理
- MEX程序中的mexFunction函数【转】
- 【bzoj1821】[JSOI2010]Group 部落划分 Group Kruskal
- 【bzoj3524】[Poi2014]Couriers 主席树
- BZOJ3124 SDOI2013直径
- NetScaler Best Practice With VMAC In A High Availability Configuration
- 【题解】洛谷P4735最大异或和
- [COGS2652]秘术「天文密葬法」