為分發(fā)而進(jìn)行的封裝
開發(fā)現(xiàn)代的專業(yè)JavaScript代碼的最后一個(gè)方面是為了代碼分發(fā)或在現(xiàn)實(shí)世界里中使用而進(jìn)行的封裝處理。隨著開始開發(fā)者們?cè)谄漤撁嬷惺褂迷絹碓蕉嗟腏avaScript代碼,沖突的可能性將會(huì)增加。如果兩個(gè)JavaScript庫(kù)里都有一個(gè)名為data的變量或者按各的意圖添加事件,災(zāi)難性的沖突和莫名其妙的錯(cuò)誤可能就會(huì)出現(xiàn)。 開發(fā)者簡(jiǎn)單地置入<script>指針無須任何變動(dòng)就能正常工作的能力是開發(fā)一個(gè)成功的JavaScript庫(kù)的精詣所在。開發(fā)者用以保持代碼清潔和普遍兼容的的技術(shù)或解決方案有許多種。 使用命名空間是廣泛使用的保證代碼不與其它JavaScript代碼互相影響和抵觸的一種技術(shù)。這方面一個(gè)極端的(但未必是最好或最有用的)運(yùn)作中的例子就是Yahoo開發(fā)的任何人都可使用的用戶界面庫(kù)。使用該庫(kù)的一個(gè)示例見程序1-3.
程序1-3. 使用重度名稱空間化的YahooUI庫(kù)給一個(gè)元素添加事件
//給ID為"body"的元素添加mouseover事件監(jiān)聽器 YAHOO.util.Event.addListener('body','mouseover',function(){ //and change the background color of the element to red this.style.backgroundColor = 'red'; });
然而,這種命名空間方法存在一個(gè)問題,即庫(kù)與庫(kù)之間在構(gòu)造和使用的方式上缺乏內(nèi)在的一致性。正是在這一點(diǎn)上,中心代碼倉(cāng)庫(kù)如JSAN(JavaScript Archive Network)變得非常有用。JSAN提供一套代碼庫(kù)需遵從的一致規(guī)則,以及一種快捷導(dǎo)入代碼所依賴的其它庫(kù)的方式。圖1-2展示了JSAN的主分發(fā)中心的一個(gè)截屏。
圖1-2. 公共代碼倉(cāng)庫(kù)JSAN的截屏
我將在第三章闡述開發(fā)清潔的可封裝代碼的細(xì)節(jié)。此外,其它常見的事故多發(fā)點(diǎn)如事件處理沖突,將在第六章論述。
出處:藍(lán)色理想
責(zé)任編輯:moby
上一頁 測(cè)試你的代碼 下一頁 不唐突的DOM腳本編程
◎進(jìn)入論壇網(wǎng)頁制作、網(wǎng)站綜合版塊參加討論
|