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