小編給大家分享一下微信小程序開發(fā)中var that =this怎么用,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
在微信小程序開發(fā)中,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行聲明了var that =this;第17行使用了that。
如果不聲明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 })
此時運(yùn)行代碼就會報以下錯誤!
從報錯中得知setData這個屬性讀不到,為何讀不到?這跟this關(guān)鍵字的作用域有關(guān)!
this作用域分析:
1.在Page({})里面,this關(guān)鍵字指代Page({})整個對象
2.因此可以通過this關(guān)鍵字訪問或者重新設(shè)置Page({})里data的變量
3.然而在loadData函數(shù)中使用了wx.request({})API這個方法導(dǎo)致在wx.request({})里沒辦法使用this來獲取Page({})對象
4.雖然在wx.request({})里沒法使用this獲取Page({})對象,但是可以在wx.request({})外面先把this存在某個變量中,所以就有了var that =this 這個聲明。此時that指代Page({})整個對象,這樣子就可以在wx.request({})里使用that訪問或者重新設(shè)置Page({})里data的變量
看完了這篇文章,相信你對“微信小程序開發(fā)中var that =this怎么用”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!
網(wǎng)站標(biāo)題:微信小程序開發(fā)中varthat=this怎么用-創(chuàng)新互聯(lián)
URL分享:http://m.kartarina.com/article18/ejsdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營銷推廣、定制開發(fā)、網(wǎng)站策劃、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站營銷、微信公眾號
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)