JS中this的指向

什么是this?

  • 它是函數(shù)運行時,在函數(shù)體內(nèi)部自動生成的一個對象,只能在函數(shù)體內(nèi)部使用。
  • JS中this的指向,取決于調(diào)用的模式(調(diào)用對象),JavaScript中有四種調(diào)用模式:

一、函數(shù)調(diào)用模式

  • 函數(shù)的最通常用法,屬于全局性調(diào)用,因此this就代表全局對象。
    <script type="text/javascript">
        var x = 1;
        function test() {
           console.log(this.x);
        }
        test();     // 1
    </script>

二、方法調(diào)用模式

  • 函數(shù)還可以作為某個對象的方法調(diào)用,這時this就指這個上級對象。
    <script type="text/javascript">
        function test() {
          console.log(this.x);
        }

        var obj = {};
        obj.x = 1;
        obj.m = test;

        obj.m();         // 1

    </script>

三、構(gòu)造器調(diào)用模式

  • 所謂構(gòu)造函數(shù),就是通過這個函數(shù),可以生成一個新對象。這時,this就指這個新對象。
    <script type="text/javascript">
        function test() {
         this.x = 1;
        }

        var obj = new test();
        obj.x // 1

    </script>

四、call()、apply()調(diào)用模式

  • apply、call方法可以讓我們設(shè)定調(diào)用者中的this指向誰。
    <script type="text/javascript">
        function showValue(){
          console.log(this.value);
        }
        var obj={
          value:4
        }
        showValue.call(obj)     //輸出4,this指向了obj對象
    </script>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 葡萄藤PPT JS中this的指向 大家好,我是IT修真院鄭州分院第6期的學(xué)員王棟,一枚正直、純潔、善良的前端程序...
    17064閱讀 679評論 0 2
  • 1.背景介紹 this是Javascript語言的一個關(guān)鍵字。它代表函數(shù)運行時,自動生成的一個內(nèi)部對象。 this...
    lx2487閱讀 333評論 0 0
  • JS中this的指向 【成都小課堂】 1.背景介紹 2.知識剖析 3.常見問題 4.解決方案 5.編碼實戰(zhàn) 6.擴...
    何華颯閱讀 469評論 0 0
  • 大家好,我是IT修真院北京分院第22期的學(xué)員楊綱,一枚正直純潔善良的WEB前端程序員。 1.背景介紹 this對象...
    古碑先生閱讀 579評論 0 1
  • JS中this的指向 1.背景介紹 2.知識剖析 3.常見問題 4.解決方案 5.編碼實戰(zhàn) 6.擴展思考 7.參考...
    冷眸_c6b8閱讀 236評論 0 0

友情鏈接更多精彩內(nèi)容