亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

微信小程序中使用var that=this的原因是什么

發布時間:2021-07-05 11:01:41 來源:億速云 閱讀:317 作者:小新 欄目:web開發

這篇文章主要為大家展示了“微信小程序中使用var that=this的原因是什么”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“微信小程序中使用var that=this的原因是什么”這篇文章吧。

前言:

  在小程序或者js開發中,經常需要使用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();
 }

  編譯之后沒有報錯,正常打印出結果;

微信小程序中使用var that=this的原因是什么

  再來一項更明白的例子:

 onLoad: function() {
  var testvar = {
   name: "zxin",
   testfun3: function() {
    console.log(this.name);
   }
  }
  testvar.testfun3();
 }

 編譯后輸出結果:zxin。this.name指的是testvar對象,testfun3()也屬于testvar對象。

以上是“微信小程序中使用var that=this的原因是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

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

AI

西和县| 本溪市| 长子县| 彭山县| 淮南市| 沈阳市| 北宁市| 天津市| 仪征市| 临漳县| 乳山市| 隆林| 兴化市| 怀宁县| 诏安县| 格尔木市| 德化县| 玉门市| 大石桥市| 简阳市| 商水县| 邢台县| 海宁市| 垫江县| 明星| 屏南县| 隆尧县| 大方县| 石柱| 平塘县| 泸州市| 灵山县| 泸水县| 会同县| 苍山县| 邓州市| 昌乐县| 金寨县| 宕昌县| 休宁县| 金沙县|