Home >WeChat Applet >Mini Program Development >Basic usage of var that =this in WeChat applet development

Basic usage of var that =this in WeChat applet development

hzc
hzcforward
2020-06-19 10:39:583356browse

In WeChat applet development, the statement var that =this is very common. For example, the code is as follows!

Sample code 1

1  //index.js  
2  Page({  
3   
4   data: {  
5    toastHidden: true,  
6   },  
7   
8   loadData: function () {  
9      var that = this//这里声明了that;将this存在that里面  
10     wx.request({  
11       url: 'test.php',  
12       data: {a: 'a', b: 'b'},  
13       header: {  
14        'content-type': 'application/json'  
15       },  
16       success(res) {  
17           that.setData({ toastHidden: false }) //这里使用了that,这样就可以获取Page({})对象  
18        },  
19      })  
20    }  
21  
22  })

In the code, line 9 declares var that =this; line 17 uses that.

If you do not declare var that =this, and change that to this, the code is as follows!
Sample Code 2

1  //index.js  
2   Page({  
3  
4    data: {  
5     toastHidden: true,  
6   },  
7  
8    loadData: function () {  
9      wx.request({  
10      url: 'test.php',  
11      data: {a: 'a', b: 'b'},  
12      header: {  
13       'content-type': 'application/json'  
14      },  
15      success(res) {  
16        this.setData({ toastHidden: false })  
17       },  
18      })  
19   }  
20  
21  })

When running the code at this time, the following error will be reported!
Basic usage of var that =this in WeChat applet development

I learned from the error report that the setData attribute cannot be read. Why can't it be read? This is related to the scope of this keyword!

this scope analysis:

1. In Page({}), the this keyword refers to the entire object of Page({})

2. Therefore, you can access or reset the data variable in Page({}) through this keyword

3. However, using the wx.request({}) API method in the loadData function results in wx There is no way to use this to get the Page({}) object in .request({})

4. Although there is no way to use this to get the Page({}) object in wx.request({}), but You can store this in a variable outside wx.request({}), so there is the statement var that =this. At this time, that refers to the entire object of Page({}), so that you can use that in wx.request({}) to access or reset the data variable in Page({})

Recommended tutorial: "JS Tutorial"

The above is the detailed content of Basic usage of var that =this in WeChat applet development. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:segmentfault.com. If there is any infringement, please contact admin@php.cn delete
Previous article:What is Skeleton Screen?Next article:What is Skeleton Screen?