溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在微信小程序中使用var that =this

發布時間:2021-05-26 09:51:39 來源:億速云 閱讀:183 作者:Leah 欄目:web開發

這篇文章給大家介紹怎么在微信小程序中使用var that =this,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

示例代碼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({})對象 
    }, 
   }) 
  } 
 
 })

在代碼中第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 }) 
    }, 
   }) 
  } 
 
 })

此時運行代碼就會報以下錯誤!

怎么在微信小程序中使用var that =this

從報錯中得知setData這個屬性讀不到,為何讀不到?這跟this關鍵字的作用域有關!

this作用域分析:

1.在Page({})里面,this關鍵字指代Page({})整個對象

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

3.然而在loadData函數中使用了wx.request({})API這個方法導致在wx.request({})里沒辦法使用this來獲取Page({})對象

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

關于怎么在微信小程序中使用var that =this就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女