在微信小程序开发中使用var that=this

微信小程序开发

小程序开发


浏览:538 次

微信小程序开发中,var that=this的声明非常常见。例如,代码如下!

示例代码1

1//索引。js语言

第2页({

4数据:{

5吐司隐藏:真的,

6 },

8 loadData:函数(){

9 var that=this//此处声明;将此存储在

10 wx.请求({

11 url:“test.php”,

12数据:{a:“a”,b:“b”},

13标题:{

14“内容类型”:“app/json”

15 },

16次成功(res){

17个。SetData({toast Hidden:false})//此处用于获取Page({})对象

18 },

19 })

20 }

21

22 })

在代码中,第9行声明varth=this;第17行使用了它。

形象

如果var that=this未声明,且已更改为this,则代码如下!

示例代码2

1//索引。js语言

第2页({

4数据:{

5吐司隐藏:真的,

6 },

8 loadData:函数(){

9 wx.请求({

10 url:“test.php”,

11数据:{a:“a”,b:“b”},

12标题:{

13“内容类型”:“app/json”

14 },

15次成功(res){

16这个。setData({toastHidden:false})

17 },

18 })

19 }

二十

21 })

此时,运行的代码将报告以下错误!

形象

从错误消息中,我们知道setData属性不可读。为什么它不可读?这与此关键字的范围有关!

本范围分析:

1.在Page({})中,此关键字引用Page(})的整个对象

2.因此,您可以通过此关键字访问或重置Page({})中的数据变量

3.然而,使用wx。loadData函数中的request({})API使得无法使用它来获取wx中的Page({})对象。请求({})

4.尽管您无法使用此项在wx中获取Page({})对象。请求({}),您可以使用它在wx中获取Page({})对象。request({})请求({})首先将其存储在一个变量中,因此有一个var的声明,它表示这个。此时,它引用了整个Page({})对象,因此您可以在wx中使用它。请求({})访问或重置Page({})中的数据变量