下一頁 1 2
使用Javascript數組
在JavaScript 1.0中構造器只存在Date對象和用戶定義的對象。你可能期望有個數組構造器,但是一直沒能實現,直到JavaScript 1.1的出現,你的期望成為了現實。我們可以如下來定義用戶對象:
function blankArray(n) {
for (var i=0; i < n; i++)
this[i] = null;
this.length = n;
}
blankArray函數創建了一個數組,這個數組中有n個空白項。下面再給出使用這個構造器的例子:
var myArray = new blankArray(3);
myArray[0] = "hello";
myArray[1] = "world";
myArray[2] = "!";
如果你對其它編程語言(如C語言)有些經驗的話,你就會直到數組的索引是從0開始的而不是從1開始的。因此在上面的例子中數組索引是從0到2的,故這個數組的長度為3。
以下的代碼是更為高級的數組構造器。它使用了'arguments'屬性來對數組賦值而不只是創建一個空數組元素,這個屬性對于所有的函數都是存在的。雖然沒有給定任何的參數,傳遞的數值仍然可以通過arguments數組來進行訪問。具體代碼如下:
function makeArray() {
for (var i=0; i < arguments.length; i++)
this[i] = arguments[i];
this.length = arguments.length;
}
而構造器的調用可以是這樣的:
var myArray = new makeArray("hello", "world", "!");
在JavaScript 1.1中,創建數組構造器結合了blankArray和makeArray的特定。如下的一個調用:
var myArray = new Array(3); // requires JS 1.1
這個調用創建了一個空白數組(其長度為3)作為上面示范的blankArray構造器。而在Netscape中稱為'dense array',因為每一個元素都有一個數值,可以如下來創建:
var myArray = new Array(value1, value2, value3); // JS 1.1