>위챗 애플릿 >미니 프로그램 개발 >WeChat 애플릿 개발에서 var that =this의 기본 사용법

WeChat 애플릿 개발에서 var that =this의 기본 사용법

hzc
hzc앞으로
2020-06-19 10:39:583350검색

WeChat 애플릿 개발에서는 var that =this라는 문이 매우 일반적입니다. 예를 들어 코드는 다음과 같습니다!

샘플 코드 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  })

은 코드 9행에서 =this를 17행에서 사용하는 var를 선언합니다.

var that =this를 선언하지 않고 that을 this로 변경하면 코드는 다음과 같습니다!
샘플코드 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  })

이때 코드를 실행하면 아래와 같은 에러가 보고됩니다!
WeChat 애플릿 개발에서 var that =this의 기본 사용법

오류 보고서를 통해 setData 속성을 읽을 수 없다는 것을 알게 되었습니다. 왜 읽을 수 없나요? 이는 이 키워드의 범위와 관련이 있습니다!

이 범위 분석:

1. Page({})에서 this 키워드는 전체 Page({}) 개체를 참조합니다

2. 따라서 Page({}는 this를 통해 액세스하거나 재설정할 수 있습니다. 키워드 }) 데이터 변수

3. 그러나 wx.request({}) API 메서드는 loadData 함수에 사용되므로 wx.request({})에서 이를 사용하여 Page( {}) object

4. 이것을 사용하여 wx.request({})에서 Page({}) 객체를 얻을 수는 없지만 먼저 wx.request({}) 외부 변수에 저장할 수 있습니다. var that =this 문이 있습니다. 현재 이는 Page({})의 전체 객체를 참조하므로 wx.request({})에서 이를 사용하여 Page({})

의 데이터 변수에 액세스하거나 재설정할 수 있습니다. 권장 튜토리얼: " JS 튜토리얼

위 내용은 WeChat 애플릿 개발에서 var that =this의 기본 사용법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제