文件大小:
軟件介紹
在Javascript 1.0中構(gòu)造器只存在Date對(duì)象和用戶定義的對(duì)象。你可能期望有個(gè)數(shù)組構(gòu)造器,但是一直沒(méi)能實(shí)現(xiàn),直到JavaScript 1.1的出現(xiàn),你的期望成為了現(xiàn)實(shí)。我們可以如下來(lái)定義用戶對(duì)象:
function blankArray(n) {
for (var i=0; i < n; i++)
this[i] = null;
this.length = n;
}
blankArray函數(shù)創(chuàng)建了一個(gè)數(shù)組,這個(gè)數(shù)組中有n個(gè)空白項(xiàng)。下面再給出使用這個(gè)構(gòu)造器的例子:
var myArray = new blankArray(3);
myArray[0] = "hello";
myArray[1] = "world";
myArray[2] = "!";
如果你對(duì)其它編程語(yǔ)言(如C語(yǔ)言)有些經(jīng)驗(yàn)的話,你就會(huì)直到數(shù)組的索引是從0開(kāi)始的而?此在上面的例子中數(shù)組索引是從0到2的,故這個(gè)數(shù)組的長(zhǎng)度為3。
以下的代碼是更為高級(jí)的數(shù)組構(gòu)造器。它使用了arguments屬性來(lái)對(duì)數(shù)組賦值而不只是創(chuàng)建一個(gè)空數(shù)組元素,這個(gè)屬性對(duì)于所有的函數(shù)都是存在的。雖然沒(méi)有給定任何的參數(shù),傳遞的數(shù)值仍然可以通過(guò)arguments數(shù)組來(lái)進(jìn)行訪問(wèn)。具體代碼如下:
function makeArray() {
for (var i=0; i < arguments.length; i++)
this[i] = arguments[i];
this.length = arguments.length;
}
而構(gòu)造器的調(diào)用可以是這樣的:
var myArray = new makeArray("hello", "world", "!");
在JavaScript 1.1中,創(chuàng)建數(shù)組構(gòu)造器結(jié)合了blankArray和makeArray的特定。如下的一個(gè)調(diào)用:
var myArray = new Array(3); // requires JS 1.1
這個(gè)調(diào)用創(chuàng)建了一個(gè)空白數(shù)組(其長(zhǎng)度為3)作為上面示范的blankArray構(gòu)造器。而在Netscape中稱為dense array,因?yàn)槊恳粋€(gè)元素都有一個(gè)數(shù)值,可以如下來(lái)創(chuàng)建:
var myArray = new Array(value1, value2, value3); // JS 1.1
既然你對(duì)構(gòu)造器和對(duì)象屬性比較熟悉了,我們可以進(jìn)一步舉些例子。如果你是使用JavaScript 1.1或者更高版本,你可以使用數(shù)組構(gòu)造器。否則你使用makeArray對(duì)象更為合適些。 var workPeople = new Array(
new Person("Thomas", 25, "green"),
new Person("Richard", 35, "blue"),
new Person("Harold", 30, "chartreuse")
);
workPeople是一個(gè)擁有三個(gè)Person對(duì)象的數(shù)組。每一個(gè)Person都有name(名字)、age(年齡)、colour(膚色)以及birthYear(出生年份)屬性。
以下再給出一個(gè)實(shí)例來(lái)使用我們上面所學(xué)到的。這里還要提醒一下,Person代碼塊和workPeople數(shù)組必須包括到相同的SCRIPT標(biāo)簽中或者網(wǎng)頁(yè)的其它地方。
<SCRIPT language="JavaScript">
<!-- Hide from older browsers
function whoIsOldest(pArray) {
var pOldest = pArray[0]; // 數(shù)組中的第一個(gè)Person
for (var i=1; i < pArray.length; i++) // 對(duì)每個(gè)附加的Person循環(huán)
if (pArray[i].isOlder(pOldest)) // 如果它們比較老
pOldest = pArray[i]; // 將它們?cè)O(shè)置為最老
return pOldest;
}
var senior = whoIsOldest(workPeople);
document.write("The oldest person is " + senior.name + "<br>" + senior);
// Stop hiding -->
</SCRIPT>
上面例子的輸出為:
The oldest person is Richard
Richard was born in 1963
and is 35 years old.
從whoIsOldest函數(shù)返回的數(shù)值是一個(gè)Person對(duì)象,它帶有對(duì)象所有的屬性和方法。這是為什么可以引用名字屬性和變量PRintPerson()方法(稱為senior)的原因。
WhoIsOldest函數(shù)的另外一些特性為:
a.處理任何的People的數(shù)組。
b.處理任何對(duì)象類型的數(shù)組,這個(gè)數(shù)組有一個(gè)isOlder()方法。
如果不是使用JavaScript,換成其它類型的編程語(yǔ)言,你就不得不指定函數(shù)輸入是一個(gè)People的數(shù)組,而在JavaScript就不用了。這正是JavaScript的
版權(quán)聲明:
1 本站所有資源(含游戲)均是軟件作者、開(kāi)發(fā)商投稿,任何涉及商業(yè)盈利目的均不得使用,否則產(chǎn)生的一切后果將由您自己承擔(dān)!
2 本站將不對(duì)任何資源負(fù)法律責(zé)任,所有資源請(qǐng)?jiān)谙螺d后24小時(shí)內(nèi)刪除。
3 若有關(guān)在線投稿、無(wú)法下載等問(wèn)題,請(qǐng)與本站客服人員聯(lián)系。
4 如侵犯了您的版權(quán)、商標(biāo)等,請(qǐng)立刻聯(lián)系我們并具體說(shuō)明情況后,本站將盡快處理刪除,聯(lián)系QQ:2499894784
- 千億體育手機(jī)版本v2.0.1 安卓版
- tplink物聯(lián)電腦版(原tplink安防) v2.12.17.
- Sandboxie Plus v1.9.8 / v5.64.8 開(kāi)源電腦
- 字魂100號(hào)方方先鋒體字體包免費(fèi)版
- 奧維互動(dòng)地圖奧維地圖PC破解版VIP V9.0.6
- 蘭博對(duì)戰(zhàn)平臺(tái) V1.38.6 官方最新版 / 蘭博玩
- reWASD(Xbox One手柄映射工具) V6.0.1.5190
- mtool修改器 V2023.11 官方最新版 / mtool
- 115轉(zhuǎn)存助手ui優(yōu)化版腳本 V3.9.1 綠色免費(fèi)
- iSecure Center電腦客戶端 V1.5.0 官方版
點(diǎn)擊加載更多評(píng)論>>