亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

微信小程序開發(fā)中var that =this的用法詳解

 更新時(shí)間:2020年01月18日 10:47:24   作者:阿山  
這篇文章主要介紹了微信小程序開發(fā)中var that =this的用法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

在微信小程序開發(fā)中,var that =this的聲明很常見。舉個(gè)例子,代碼如下!

示例代碼1

 //index.js 
 Page({ 
  
  data: { 
  toastHidden: true, 
  }, 
  
  loadData: function () { 
   var that = this//這里聲明了that;將this存在that里面 
   wx.request({ 
    url: 'test.php', 
    data: {a: 'a', b: 'b'}, 
    header: { 
    'content-type': 'application/json' 
    }, 
    success(res) { 
      that.setData({ toastHidden: false }) //這里使用了that,這樣就可以獲取Page({})對(duì)象 
    }, 
   }) 
  } 
 
 })

在代碼中第9行聲明了var that =this;第17行使用了that。

如果不聲明var that =this,且that改成this,代碼如下!

示例代碼2

 //index.js 
  Page({ 
 
  data: { 
   toastHidden: true, 
  }, 
 
  loadData: function () { 
   wx.request({ 
   url: 'test.php', 
   data: {a: 'a', b: 'b'}, 
   header: { 
    'content-type': 'application/json' 
   }, 
   success(res) { 
    this.setData({ toastHidden: false }) 
    }, 
   }) 
  } 
 
 })

此時(shí)運(yùn)行代碼就會(huì)報(bào)以下錯(cuò)誤!

從報(bào)錯(cuò)中得知setData這個(gè)屬性讀不到,為何讀不到?這跟this關(guān)鍵字的作用域有關(guān)!

this作用域分析:

1.在Page({})里面,this關(guān)鍵字指代Page({})整個(gè)對(duì)象

2.因此可以通過(guò)this關(guān)鍵字訪問(wèn)或者重新設(shè)置Page({})里data的變量

3.然而在loadData函數(shù)中使用了wx.request({})API這個(gè)方法導(dǎo)致在wx.request({})里沒辦法使用this來(lái)獲取Page({})對(duì)象

4.雖然在wx.request({})里沒法使用this獲取Page({})對(duì)象,但是可以在wx.request({})外面先把this存在某個(gè)變量中,所以就有了var that =this 這個(gè)聲明。此時(shí)that指代Page({})整個(gè)對(duì)象,這樣子就可以在wx.request({})里使用that訪問(wèn)或者重新設(shè)置Page({})里data的變量

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論