亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

微信小程序中為什么使用var that=this

 更新時間:2019年08月27日 11:46:46   作者:zxin1210  
這篇文章主要介紹了小程序中為什么使用var that=this的相關(guān)知識,本文通過示例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下

前言:

  在小程序或者js開發(fā)中,經(jīng)常需要使用var that = this;開始我以為是無用功,(原諒我的無知),后來從面向?qū)ο蟮慕嵌纫幌刖兔靼琢?,下面簡單解釋一下我自己的理解,歡迎指正批評。

代碼示例:

Page({
 data: {
  test:10
 },
 testfun1: function () {
  console.log(this.data.test) // 10
  function testfun2(){
   console.log(this.data.test) //undefined
  }
  testfun2()
 },
})

第一個this.data.test打印結(jié)果為10,原因是因為this的指向是包含自定義函數(shù)testfun1()的Page對象。

第二個打印語句實際上會報錯,原因是在函數(shù)testfun2()中,this指向已經(jīng)發(fā)生改變,也不存在data屬性,會error:Cannot read property 'data' of undefined;

  解決辦法 為復(fù)制一份this的指向到變量中,這樣在函數(shù)執(zhí)行過程中雖然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();
 }

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

  再來一項更明白的例子:

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

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

 總結(jié):

大家知道this是指當前對象,只是一個指針,真正的對象存放在堆內(nèi)存中,this的指向在程序執(zhí)行過程中會變化,因此如果需要在函數(shù)中使用全局數(shù)據(jù)需要合適地將this復(fù)制到變量中。

以上所述是小編給大家介紹的微信小程序中為什么使用var that=this,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • 詳解TypeScript編譯TSX文件的方法

    詳解TypeScript編譯TSX文件的方法

    因為使用 Cycle.js 的 Vite + TSX 所以想詳細的探索 TSX 在 TS 配置中的編譯情況,本文主要講解 tsconfig 和 tsx 編譯與配置,以常見的框架 PReact 的虛擬 DOM + TSX 組合、snabbdom + TSX 組合不同的配置以及編譯輸出
    2023-09-09
  • Bootstrap媒體對象學(xué)習(xí)使用

    Bootstrap媒體對象學(xué)習(xí)使用

    這篇文章主要為大家詳細介紹了Bootstrap媒體對象的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • 在Google 地圖上實現(xiàn)做的標記相連接

    在Google 地圖上實現(xiàn)做的標記相連接

    這篇文章主要介紹了在Google 地圖上實現(xiàn)做的標記相連接,需要的朋友可以參考下
    2015-01-01
  • js判斷當前瀏覽器類型,判斷IE瀏覽器方法

    js判斷當前瀏覽器類型,判斷IE瀏覽器方法

    這篇文章主要介紹了js判斷當前瀏覽器類型,判斷IE瀏覽器方法,需要的朋友可以參考下
    2014-06-06
  • JavaScript原生數(shù)組函數(shù)實例匯總

    JavaScript原生數(shù)組函數(shù)實例匯總

    這篇文章主要介紹了JavaScript原生數(shù)組函數(shù)實例匯總,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-10-10
  • 基于bootstrap實現(xiàn)bootstrap中文網(wǎng)巨幕效果

    基于bootstrap實現(xiàn)bootstrap中文網(wǎng)巨幕效果

    這篇文章主要介紹了基于bootstrap實現(xiàn)bootstrap中文網(wǎng)巨幕效果,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2017-05-05
  • js確認刪除對話框適用于a標簽及submit

    js確認刪除對話框適用于a標簽及submit

    這篇文章主要介紹的是一個js確認刪除對話框適用于a標簽及submit,非常好用,需要的朋友不要錯過
    2014-07-07
  • 微信小程序?qū)崿F(xiàn)計算器小功能

    微信小程序?qū)崿F(xiàn)計算器小功能

    這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)計算器小功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • 詳解JavaScript對象轉(zhuǎn)原始值

    詳解JavaScript對象轉(zhuǎn)原始值

    這篇文章主要為大家介紹了vue組件通信的幾種方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • 通過DOM腳本去設(shè)置樣式信息

    通過DOM腳本去設(shè)置樣式信息

    在大多數(shù)場合,我們都用CSS去設(shè)置樣式,但在某些特殊情況下,例如要根據(jù)元素在節(jié)點樹里的位置來設(shè)置節(jié)點樣式信息時,目前CSS還沒辦法做到這一點。但利用DOM就可以很輕易的完成。
    2010-09-09

最新評論