現(xiàn)代 javscript 編程 資料第4/6頁
為分發(fā)而進(jìn)行的封裝
開發(fā)現(xiàn)代的專業(yè)JavaScript代碼的最后一個方面是為了代碼分發(fā)或在現(xiàn)實(shí)世界里中使用而進(jìn)行的封裝處理。隨著開始開發(fā)者們在其頁面中使用越來越多的JavaScript代碼,沖突的可能性將會增加。如果兩個JavaScript庫里都有一個名為data的變量或者按各的意圖添加事件,災(zāi)難性的沖突和莫名其妙的錯誤可能就會出現(xiàn)。
開發(fā)者簡單地置入<script>指針無須任何變動就能正常工作的能力是開發(fā)一個成功的JavaScript庫的精詣所在。開發(fā)者用以保持代碼清潔和普遍兼容的的技術(shù)或解決方案有許多種。
使用命名空間是廣泛使用的保證代碼不與其它JavaScript代碼互相影響和抵觸的一種技術(shù)。這方面一個極端的(但未必是最好或最有用的)運(yùn)作中的例子就是Yahoo開發(fā)的任何人都可使用的用戶界面庫。使用該庫的一個示例見程序1-3.
程序1-3. 使用重度名稱空間化的YahooUI庫給一個元素添加事件
//給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òu)造和使用的方式上缺乏內(nèi)在的一致性。正是在這一點(diǎn)上,中心代碼倉庫如JSAN(JavaScript Archive Network)變得非常有用。JSAN提供一套代碼庫需遵從的一致規(guī)則,以及一種快捷導(dǎo)入代碼所依賴的其它庫的方式。圖1-2展示了JSAN的主分發(fā)中心的一個截屏。
我將在第三章闡述開發(fā)清潔的可封裝代碼的細(xì)節(jié)。此外,其它常見的事故多發(fā)點(diǎn)如事件處理沖突,將在第六章論述。
相關(guān)文章
使用requestAnimationFrame實(shí)現(xiàn)js動畫性能好
requestAnimationFrame優(yōu)于setTimeout/setInterval的地方在于它是由瀏覽器專門為動畫提供的API,在運(yùn)行時瀏覽器會自動優(yōu)化方法的調(diào)用,并且如果頁面不是激活狀態(tài)下的話,動畫會自動暫停,有效節(jié)省了CPU開銷,這篇文章給大家詳細(xì)介紹使用requestAnimationFrame實(shí)現(xiàn)js動畫2015-08-08微信小程序中插入激勵視頻廣告并獲取收益(實(shí)例代碼)
這篇文章主要介紹了微信小程序中插入激勵視頻廣告并獲取收益,通過代碼給大家介紹了如何插入及注意事項(xiàng),需要的朋友可以參考下2019-12-12javascript實(shí)現(xiàn)的textarea運(yùn)行框效果代碼 不用指定id批量指定
今天在寫一個網(wǎng)頁的時候用到了N多嵌套在textarea標(biāo)簽里的代碼,定義雙擊運(yùn)行其內(nèi)的代碼段。但是每次創(chuàng)建一個這樣的可運(yùn)行的實(shí)例都要給textarea元素自定義一個id值和寫入雙擊事件,好不麻煩。2009-12-12js中的document.querySelector()方法舉例詳解
這篇文章主要給大家介紹了關(guān)于js中document.querySelector()方法的相關(guān)資料,document.querySelector是JavaScript中的一個內(nèi)置方法,用于通過CSS選擇器選擇文檔中的第一個匹配元素,需要的朋友可以參考下2024-01-01Echarts.js實(shí)現(xiàn)水滴球和海洋效果
這篇文章介紹了Echarts.js實(shí)現(xiàn)水滴球和海洋效果的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-04-04js jquery 獲取某一元素到瀏覽器頂端的距離實(shí)現(xiàn)方法
今天小編就為大家分享一篇js jquery 獲取某一元素到瀏覽器頂端的距離實(shí)現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09