欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JScript  

JScript 對象

Jscript 對象是屬性和方法的集合。一個方法就是一個函數(shù),是對象的成員。屬性是一個值或一組值(以數(shù)組或?qū)ο蟮男问剑,是對象的成員。Jscript 支持四種類型的對象:內(nèi)部對象、生成的對象、宿主給出的對象(如 Internet 瀏覽器中的 windowdocument)以及 ActiveX 對象(外部組件)。

作為數(shù)組的對象

在 Jscript 中,對象和數(shù)組幾乎是以相同的方式處理的。對象和數(shù)組均可以被賦予任意值,實際上數(shù)組只是一種特殊的對象。數(shù)組和對象的區(qū)別在于數(shù)組有一個“奇妙的” length 屬性,而對象沒有。這意味著可以給數(shù)組的一個元素賦予比其他元素更大的值。例如,myArray[100] = "hello",然后 length 屬性將自動地被更新為 101(新長度)。同樣,如果修改數(shù)組的 length 屬性,將刪除不再是數(shù)組部分的元素。

Jscript 中所有的對象均支持“expando”屬性或那些可以在運行時動態(tài)添加和刪除的屬性。這些屬性可以有包含數(shù)字的任意名稱。如果屬性的名稱是簡單的標(biāo)識符<<參考標(biāo)識符規(guī)則>>,可以在對象名稱的后面加句點,例如:

var myObj = new Object();

// 添加兩個 expando 屬性,'name' 和 'age'
myObj.name = "Fred";
myObj.age = 42;

如果屬性名稱不是一個簡單的標(biāo)識符,或者在寫腳本的時候不知道,可以在方括號中使用任意表達(dá)式來索引屬性。在 Jscript 中所有 expando 屬性的名稱在被添加到對象之前被轉(zhuǎn)換為字符串。

var myObj = new Object();

// 添加兩個無法寫在 object.property 語
// 法中的 expando 屬性。
// 第一個屬性包含無效字符(空格),
// 所以必須寫在方括號里。
myObj["not a valid identifier"] = "This is the property value";

// 第二個 expando 名稱是一個數(shù)字,
// 所以也必須寫在方括號里。
myObj[100] = "100";

傳統(tǒng)的作法是賦給數(shù)組元素以 0 開始的數(shù)字索引。這些數(shù)組元素與 length 屬性相交互。然而,由于所有的數(shù)組也是對象,也支持 expando 屬性。請注意,雖然如此,expando 屬性并不以任何方式與 length 屬性相交互。例如:

// 三個元素的數(shù)組
var myArray = new Array(3);

// 添加數(shù)據(jù)
myArray[0] = "Hello";
myArray[1] = 42;
myArray[2] = new Date(2000, 1, 1);

// 顯示數(shù)組的長度 3
window.alert(myArray.length);

// 添加某些 expando 屬性
myArray.expando = "JScript!";
myArray["another Expando"] = "Windows";

// 仍然顯示 3,因為兩個 expando 屬性
// 并不影響長度。
window.alert(myArray.length);

雖然 Jscript 并不直接支持多維數(shù)組,但是可以在數(shù)組元素中存儲任意種類的數(shù)據(jù)(包含其他數(shù)組)。所以通過在另一個數(shù)組的元素里存儲其他數(shù)組可以得到多維數(shù)組的特性。例如,下面的代碼為最大為 5 的數(shù)字建立了乘法表:

// 若是更大的表請改變本數(shù)
var iMaxNum = 5;
// 循環(huán)計數(shù)
var i, j;

// 新數(shù)組。由于數(shù)組從 0 開始計數(shù),
// 而不是 1,所以數(shù)組大小為 iMaxNum + 1。
var MultiplicationTable = new Array(iMaxNum + 1);

// 為每個主要的數(shù)做循環(huán)(表中的每一行)
for (i = 1; i <= iMaxNum; i++)
{
    // 生成表中的列
    MultiplicationTable[i] = new Array(iMaxNum + 1);

    // 將乘法的結(jié)果存在行中
    for (j = 1; j <= iMaxNum; j++)
    {
        MultiplicationTable[i][j] = i * j;
    }
}

window.alert(MultiplicationTable[3][4]); // 顯示 12
window.alert(MultiplicationTable[5][2]); // 顯示 10
window.alert(MultiplicationTable[1][4]); // 顯示 4