結合函式成員的配置,我們可以設計私有欄位,以避免外部程式異動類別內部的欄位值。考慮以下的函式設計:
function NumberTest() {
var a = 2 ;
this.b = 1024;
}
其中a變數是函式的成員,另外b則是實體物件成員,現在建立一個 NumberTest 物件,並且嘗試對 a 與 b 進行存取如下:
var n = new NumberTest();
console.log(n.a);
console.log(n.b);
n.a 試圖取得 a 的值,而 n.b 則取得 b 的值,這兩個值是後被輸出於控制台,結果如下:
undefined
1024
由於 a 無法透過物件取出,因此第一個輸出是未定義的值,第二個 b 是實體物件成員,因此直接被取出,輸出值為 1024 。我們可以進一步的設計方法成員,間接取得a這個欄位值,現在擴充 NumberTest() 函式內容如下:
<script>
function
NumberTest() {
var a = 2;
this.b = 1024;
this.geta = function () { return a; }
}
var n = new
NumberTest();
console.log(n.b);
console.log(n.geta());
</script>
於函式中新增一個實體方法成員 geta() ,此成員回傳變數a的值,如此一來我們可以透過 geta() 的調用,取得 a 這個值。

沒有留言:
張貼留言