今天小編給大家分享一下微信小程序中為什么要使用var that=this的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
代碼示例:
Page({ data: { test:10 }, testfun1: function () { console.log(this.data.test) // 10 function testfun2(){ console.log(this.data.test) //undefined } testfun2() }, })
第一個this.data.test
打印結果為10,原因是因為this的指向是包含自定義函數testfun1()的Page對象。
第二個打印語句實際上會報錯,原因是在函數testfun2()中,this指向已經發生改變,也不存在data屬性,會error:Cannot read property 'data' of undefined;
解決辦法 為復制一份this的指向到變量中,這樣在函數執行過程中雖然this改變了,但是that還是指向之前的對象。
testfun1: function () { var that = this console.log(this.data.test) // 10 function testfun2() { console.log(that.data.test) // 10 } testfun2() }, onLoad:function(){ this.testfun1(); }
編譯之后沒有報錯,正常打印出結果;
再來一項更明白的例子:
onLoad: function() { var testvar = { name: "zxin", testfun3: function() { console.log(this.name); } } testvar.testfun3(); }
編譯后輸出結果:zxin。this.name指的是testvar對象,testfun3()也屬于testvar對象。
以上就是“微信小程序中為什么要使用var that=this”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注創新互聯行業資訊頻道。
名稱欄目:微信小程序中為什么要使用varthat=this-創新互聯
文章網址:http://www.yijiale78.com/article2/docioc.html
成都網站建設公司_創新互聯,為您提供服務器托管、App開發、ChatGPT、云服務器、定制網站、網站設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯