<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      JS中的this指向問題

      this的指向問題

      全局作用域

      在JS中,全局的變量和函數附著在global對象上,全局對象在瀏覽器環境下是window對象。

      • 在全局作用域中,this指向全局對象window
      console.log(this);      // window對象
      console.log(window);    // window對象
      console.log(this === window);    // true
      
      var a = 3;
      
      console.log(a);                                     // 3
      console.log(window.a);                              // 3
      console.log(this.a);                                // 3
      console.log(a === window.a && window.a === this.a); // true
      
      function say(){
          console.log("hi");
      }
      
      this.say();     // hi
      

      全局變量和window對象的關系

      • 使用var聲明定義的全局變量被掛載到全局對象window上。

      • 使用letconst聲明定義的全局變量不會被掛載到全局對象window上。


      普通函數

      普通函數內部的this指向調用這個函數的對象。

      案例1

      function testThis(){
          console.log(this);
      }
      
      testThis();     // 輸出結果: window對象
      

      testThis()在全局作用域中被調用,相當于執行了window.testThis();,則函數被調用時,內部的this指向window.

      案例2

      var obj = {
          test(){
              console.log(this);
          }
      }
      
      obj.test();     // obj
      

      普通函數作為對象上的方法時,this指向調用方法的對象.

      案例3

      var obj = {
          test1(){
              console.log(this);
          },
          test2(){
              test();    // 這里相當于執行了window.test();
          }
      }
      
      function test(){
          console.log(this);
      }
      
      obj.test1();     // obj
      obj.test2();     // window
      test();          // window
      

      構造函數

      構造函數一般是通過new關鍵字調用的,其內部的this指向新創建的對象。

      function Person(name,age){
          this.name = name;
          this.age = age;
          console.log(this);
      }
      
      const person1 = new Person('張三',20);
      const person2 = new Person('李四',18);
      

      構造函數利用指向新對象的this,將傳入的nameage屬性直接賦值給新對象。通過最后的console.log(this)語句也可以檢測出this的指向。


      綁定事件函數

      const btn = document.querySelector('button');
      
      btn.onclick = function(){
          console.log(this);
      }
      
      • this指向觸發該事件的對象。

      此處,點擊事件觸發時,this指向按鈕這個DOM對象。


      箭頭函數

      箭頭函數沒有屬于自己的this。因此,箭頭函數內部使用的this就是箭頭函數所在上下文的this.

      var obj = {
          test1(){
              console.log(this);
          },
          test2:()=>{
              console.log(this);
          }
      }
      obj.test1();     // obj
      obj.test2();     // window
      

      test2是箭頭函數,沒有屬于自己的this。在其內部輸出的thisobj所在上下文的this,即window


      改變this指向的方法

      函數是對象,有屬于自己的屬性和方法。

      函數有callapply方法可以改變調用時this的指向。

      posted @ 2022-11-02 11:24  feixianxing  閱讀(152)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 乌恰县| 免费吃奶摸下激烈视频| 国产精品午夜福利视频234区 | 久久久久免费看成人影片| 中文字幕乱妇无码av在线| 国产亚洲国产精品二区| 少妇高潮喷水久久久影院| 亚洲av色综合久久综合| 久久这里有精品国产电影网| 深夜宅男福利免费在线观看| 亚洲国产一区二区三区亚瑟| 扒开双腿猛进入喷水高潮叫声| 国产av无码国产av毛片| 精品视频不卡免费观看| 国产探花在线精品一区二区| 老熟妇老熟女老女人天堂| 午夜福利片1000无码免费| 久久久久久性高| mm1313亚洲国产精品| 一区二区和激情视频| 亚洲第一精品一二三区| 日日猛噜噜狠狠扒开双腿小说| 被喂春药蹂躏的欲仙欲死视频| 中文字幕国产精品二区| 色悠悠久久精品综合视频| 精品久久人人妻人人做精品| 在线观看潮喷失禁大喷水无码| 亚洲国产精品综合色在线| 色猫咪av在线观看| 国产午夜精品久久精品电影| 和艳妇在厨房好爽在线观看| 亚洲va中文字幕无码久久| 久久爱在线视频在线观看| 精品国产成人三级在线观看| 亚洲婷婷综合色高清在线| 国产大尺度一区二区视频| 毛片在线播放网址| 影音先锋大黄瓜视频| 国产精品小一区二区三区| 人妻熟女欲求不满在线| 色综合天天色综合久久网|