溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

微信小程序開(kāi)發(fā)中var that=this的用法是怎樣的

發(fā)布時(shí)間:2021-10-13 09:56:40 來(lái)源:億速云 閱讀:151 作者:柒染 欄目:開(kāi)發(fā)技術(shù)

微信小程序開(kāi)發(fā)中var that=this的用法是怎樣的,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

在微信小程序開(kāi)發(fā)中,var that =this的聲明很常見(jiàn)。舉個(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)鍵字訪(fǎng)問(wèn)或者重新設(shè)置Page({})里data的變量

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

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

看完上述內(nèi)容,你們掌握微信小程序開(kāi)發(fā)中var that=this的用法是怎樣的的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI