prototype1.5 初體驗(yàn)第1/2頁
一直沒有沒有時間看prototype,現(xiàn)在好了,已經(jīng)更新到了1.5 pre1,呵呵,強(qiáng)大的功能不得不學(xué)習(xí)啊,這個是提升自己JS能力的又一個捷徑.
1. Prototype是什么?
或許你還沒有用過它, prototype.js 是一個由Sam Stephenson寫的JavaScript包。這個構(gòu)思奇妙編寫良好的一段兼容標(biāo)準(zhǔn)的一段代碼將承擔(dān)創(chuàng)造胖客戶端, 高交互性WEB應(yīng)用程序的重?fù)?dān)。輕松加入Web 2.0特性。
如果你最近體驗(yàn)了這個程序包,你很可能會發(fā)現(xiàn)文檔并不是它的強(qiáng)項(xiàng)之一。像所有在我之前的開發(fā)者一樣,我只能一頭扎進(jìn)prototype.js的源代碼中并且試驗(yàn)其中的每一個部分。 我想當(dāng)我學(xué)習(xí)他的時候記寫筆記然后分享給其他人將會很不錯。
我也一起提供了這個包的對象,類,方法和擴(kuò)展的 非官方參考 。
2. 通用性方法
這個程序包里面包含了許多預(yù)定義的對象和通用性方法。編寫這些方法的明顯的目的就是為了減少你大量的重復(fù)編碼和慣用法。
從Prototype1.5.x版本開始,你可以更方便的如下面代碼一樣操作DOM對象了:
var ele = $("myelement");
ele.hide(); //隱藏DOM對象對比從前的版本var ele = $("myelement");
Element.hide(ele); //隱藏DOM對象
這樣的改變有什么益處呢? 我覺得一來是更面向?qū)ο罅?,二來就是便于將來IDE里的代碼提示。
2.1. 使用 $()方法
$() 方法是在DOM中使用過于頻繁的 document.getElementById() 方法的一個便利的簡寫,就像這個DOM方法一樣,這個方法返回參數(shù)傳入的id的那個元素。
比起DOM中的方法,這個更勝一籌。你可以傳入多個id作為參數(shù)然后 $() 返回一個帶有所有要求的元素的一個 Array 對象。下面的例子會向你描述這些。
<HTML>
<HEAD>
<TITLE> Test Page </TITLE>
<script src="prototype-1.3.1.js"></script>
<script>
function test1()
{
var d = $('myDiv');
alert(d.innerHTML);
}
function test2()
{
var divs = $('myDiv','myOtherDiv');
for(i=0; i<divs.length; i++)
{
alert(divs[i].innerHTML);
}
}
</script>
</HEAD>
<BODY>
<div id="myDiv">
<p>This is a paragraph</p>
</div>
<div id="myOtherDiv">
<p>This is another paragraph</p>
</div>
<input type="button" value=Test1 onclick="test1();"><br>
<input type="button" value=Test2 onclick="test2();"><br>
</BODY>
</HTML>
這個方法的另一個好處就是你可以傳入id字符串或者元素對象自己,這使得在創(chuàng)建可以傳入任何形式參數(shù)的方法的時候, 它變得非常有用。
2.2. 使用$F()方法
$F()方法是另一個非常受歡迎的簡寫。它可以返回任何輸入表單控件的值,如文本框或下拉框。 這個方法可以傳入元素的id或者元素自己。
<script>
function test3()
{
alert( $F('userName') );
}
</script>
<input type="text" id="userName" value="Joe Doe"><br>
<input type="button" value=Test3 onclick="test3();"><br>
2.3. 使用Try.these()方法
Try.these() 方法使得實(shí)現(xiàn)當(dāng)你想調(diào)用不同的方法直到其中的一個成功正常的這種需求變得非常容易, 他把一系列的方法作為參數(shù)并且按順序的一個一個的執(zhí)行這些方法直到其中的一個成功執(zhí)行,返回成功執(zhí)行的那個方法的返回值。
在下面的例子中, xmlNode.text在一些瀏覽器中好用,但是xmlNode.textContent在另一些瀏覽器中正常工作。 使用Try.these()方法我們可以得到正常工作的那個方法的返回值。
<script>
function getXmlNodeValue(xmlNode){
return Try.these(
function() {return xmlNode.text;},
function() {return xmlNode.textContent;)
);
}
</script>
相關(guān)文章
Prototype Object對象 學(xué)習(xí)
該不是一個概念。因?yàn)镃#中的命名空間后面不會直接跟方法,肯定是接一個對象然后在調(diào)用方法,不過和C++中的命名空間倒是有些類似2009-07-07Prototype Template對象 學(xué)習(xí)
這里的Template對象其實(shí)就是格式化字符串的工具,就像java中的String.format方法。這個對象只提供一個方法evaluate。2009-07-07Prototype RegExp對象 學(xué)習(xí)
幫助文檔上沒有這個對象,實(shí)際上源代碼中這個對象還是有方法的,就1靜態(tài)方法,作用也不是很大,這里簡單說一下,因?yàn)橐院蠼榻B別的對象時會用到這個RegExp2009-07-07由prototype_1.3.1進(jìn)入javascript殿堂-類的初探
由prototype_1.3.1進(jìn)入javascript殿堂-類的初探...2006-11-11Prototype 學(xué)習(xí) 工具函數(shù)學(xué)習(xí)($方法)
$方法——被成為瑞士軍刀$方法使用技巧。2009-07-07Prototype String對象 學(xué)習(xí)
這個對象里面的方法就是提供了一些字符串操作的工具方法,比較重要的gsub方法,下面做了詳細(xì)的注釋,簡單的方法就不說了,一看就明白了。2009-07-07