JavaScript知識點總結(jié)(十)之this關(guān)鍵字

字號:


    這篇文章主要介紹了JavaScript知識點總結(jié)(十)之this關(guān)鍵字的相關(guān)資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下
    this是Javascript語言的一個關(guān)鍵字。隨著函數(shù)使用場合的不同,this的值會發(fā)生變化。但是有一個總的原則,那就是this指的是,調(diào)用函數(shù)的那個對象。JavaScript中的this指針是一個動態(tài)的變量,一個方法內(nèi)的this指針并不是始終指向定義該方法的對象的。Javascript中this關(guān)鍵字通常指向當前函數(shù)的擁有者。
    下面通過代碼給大家介紹下。具體代碼如下所示:
    代碼如下:
    <script type="text/javascript">
    function Person(){
    /*使用var 屬性名定義的屬性是類的私有屬性,外界無法訪問,要想被外界訪問,就要使用公共方法*/
    var QQ=""; 
    var Email="@qq.com";
    /*使用this.屬性名定義的屬性就是類的公共屬性,是可以被外界訪問的*/
    this.Name="孤傲蒼狼";
    this.Age=;
    /*定義Person類的公共方法,凡是定義類的公共屬性和公共方法都要使用this*/
    this.Show=function(){//定義Person類的公共方法(特權(quán)方法)
    alert("QQ="+QQ+"\tEmail="+Email);
    }
    /*定義Person類的私有方法*/
    function Show(){//這是Person類的一個私有方法,只能在Person類內(nèi)部使用
    }
    }
    var p = new Person();
    alert("私有屬性p.QQ="+p.QQ+"\t"+"p.Email="+p.Email);
    alert("公共屬性p.Name="+p.Name+"\t"+"p.Age="+p.Age);
    p.Show();
    //p.Show();//這里會報錯,無法調(diào)用Person類的私有方法,
    /*
    Window 對象描述
    Window 對象表示一個瀏覽器窗口或一個框架。在客戶端 JavaScript 中,Window 對象是全局對象,所有的表達式都在當前的環(huán)境中計算。
    也就是說,要引用當前窗口根本不需要特殊的語法,可以把那個窗口的屬性作為全局變量來使用。例如,可以只寫 document,而不必寫 window.document。
    同樣,可以把當前窗口對象的方法當作函數(shù)來使用,如只寫 alert(),而不必寫 Window.alert()。
    */
    function Test(){
    alert(this.v);
    }
    v=;
    Test();
    window.Test();//記住一句話:哪個對象調(diào)用this所在的函數(shù),那么this代表的就是哪個對象實例,這里是window對象調(diào)用Test()方法,因此此時this指的就是window對象
    function Test(){
    this.fnTest=function(){
    alert(this.v);
    }
    }
    var t = new Test();
    t.v="記住一句話:哪個對象調(diào)用this所在的函數(shù),那么this代表的就是哪個對象實例";
    t.fnTest();//這里是t對象調(diào)用Test()方法,因此此時this指的就是t對象
    </script>
    JavaScript的this總結(jié):
    1、this不能在類定義的外部使用,只能在類定義的內(nèi)部使用。
    2、哪個對象調(diào)用this所在的函數(shù),那么this代表的就是哪個對象實例。
    關(guān)于JavaScript知識點總結(jié)(十)之this關(guān)鍵字的理解就給大家介紹這里,希望對大家有所幫助!