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
Release: 2020-06-19 10:39:58
forward
3370 people have browsed it

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  })
Copy after login

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  })
Copy after login

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!

Related labels:
source:segmentfault.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template