小程序的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函数中的这些内容,从而能在接口中使用这些值。

最新文章

  1. Atitit linux获取项目运行环境版本
  2. rdlc报表相关
  3. c++ shared_ptr 使用注意事项. 2
  4. iOS 动态特性和RunTime
  5. Centos 6.4 Linux 相关问题总结
  6. 在ubtuntu中使用包管理器 linux-brew
  7. Java网络编程基础(Netty预备知识)
  8. 1-express学习
  9. Fiddler 抓包工具总结【转载】
  10. 4.update更新和delete删除用法
  11. centos7----pstree
  12. Java 8 新特性-菜鸟教程 (1) -Java 8 Lambda 表达式
  13. 使用不同的方法计算TF-IDF值
  14. Elasticsearch cluster health: yellow unassigned shards
  15. 网站遭受CC攻击的解决办法
  16. Kafka一些常见资源汇总
  17. Couchbase集群
  18. 【Python学习笔记】
  19. Linux命令-安全复制命令:scp
  20. Hello Vizhub

热门文章

  1. try catch finally 与continue的使用
  2. java邮件开发
  3. Spring Boot 运行原理
  4. MEX程序中的mexFunction函数【转】
  5. 【bzoj1821】[JSOI2010]Group 部落划分 Group Kruskal
  6. 【bzoj3524】[Poi2014]Couriers 主席树
  7. BZOJ3124 SDOI2013直径
  8. NetScaler Best Practice With VMAC In A High Availability Configuration
  9. 【题解】洛谷P4735最大异或和
  10. [COGS2652]秘术「天文密葬法」