国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 熱點 > 微信 > 正文

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

2024-07-22 01:17:37
字體:
來源:轉載
供稿:網友

前言:

  在小程序或者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(); }

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

  再來一項更明白的例子:

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

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

 總結:

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 卢氏县| 都昌县| 修武县| 桦南县| 文成县| 平江县| 政和县| 区。| 容城县| 彭州市| 扬州市| 雅安市| 奇台县| 章丘市| 宜春市| 凤阳县| 论坛| 涪陵区| 东宁县| 高密市| 峨边| 崇义县| 盐边县| 融水| 抚州市| 赤壁市| 乌恰县| 朝阳市| 安徽省| 宜章县| 安丘市| 如东县| 依安县| 依兰县| 新和县| 威宁| 桐城市| 江津市| 信宜市| 三门县| 万荣县|