JavaScript其實一門基於或者說是物件導向的語言,這樣的話,this這個關鍵字,在類別的內部就顯得尤為重要,當
創建一個類別的時候,如果希望下面new出來的每個類別都擁有一些通用的變數或其他的函數,這個this關鍵字這是最好
的方式。
當然,既然是物件導向的語言,必然有存取權限的問題,這裡也和this關鍵字息息相關。下面我們來示範一個範例
子來說明這個類別的存取權限的問題.
[javascript]
//Person類
function Person(){
var name="abc";/var){
var name="abc";是類別內部的私人變量,外部無法存取
var age = 20;
this.name2="edg";//this shou方法是公開的方法,可以外部訪問,而且可以訪問類別內部私有方法
window.alert(name);
}
}
}
訪問
}
}
var p1 = 新創 .2cto.com
function Person (){
var name="abc";//var聲明的都是類別內部的私人變量,外部無法存取
var age = 20;
this.name2="edg";//this聲明的是公開變量,外部可以存取
this.show=function(){//shou方法是公開的方法,可以外部訪問,而且可以訪問類內部私有方法
window.alert(name); (){//shouw2方法是類別內部的私人方法,不能外部存取
}
}
var p1 = new Person();
document.writeln(p1.name2+1Person. show();
這個Person其實就是一個類,類名就是Person,其中聲明的變量,var開頭的都是私有變量,只能在類的內部實現訪問
問,而透過this關鍵字聲明的變量是公有的變量,可以在外部存取。當然,只需要公開一個方法,就可以實現外部訪
問類別內部的私有變量,這個this.show=function(){}就是聲明一個共有方法,在類別的外部也是可以呼叫的。當然,以此
function test(){
alert(this.v);} v. ;
window.test(); function test(){
alert(this.v);
}
var v = 902;
window.test();
var v = 902;
window.test();
var v = 902;
window.test();
var v = 902;
window.test();
程式碼很短,這個的意思是這個方法,這個this就是指的那個對象,比如,window對象調用的test方法,
所以在test方法內部,這個this,v就是指在window也就是外部全局是否定義了一個v變量,透過查看可以知道,定義了
一個var v = 902;所以這個方法呼叫的其實就是v的值.