JavaScript庫 開發(fā)規(guī)則
1. 保持無侵入性 我的HTML標(biāo)記不想知道你的JavaScript代碼。
2. 嚴(yán)禁修改和擴展Object.prototype! 這條很重要,因此需要一條完全針對它的規(guī)則。對象是JavaScript功能的基本構(gòu)建模塊,不要搞亂它們。
3. 不要過分?jǐn)U展 對JavaScript內(nèi)建對象的擴展越少越好。別誤解我的意思。JavaScript的原生對象中有用的方法是有點少,有時不得不添加一兩個自己的方法。但是,對于富有創(chuàng)造力的(庫)程序員來說,添加這“一兩個”方法是不夠的。然而,請停下來!添加需要的就好。你對JavaScript內(nèi)建對象的擴展越少,你的代碼與其它框架產(chǎn)生的沖突的概率就越少。
4. 跟隨標(biāo)準(zhǔn) 作為一個庫的開發(fā)者,你定義JavaScript代碼的模式。設(shè)計模式是編程語言能力弱的體現(xiàn)。 記住,JavaScript和DOM還在不斷地被規(guī)格化。如果你想“修正”某些東西,最好先看看是否已經(jīng)被修正,考慮已有的解決方案。 如果你跟隨標(biāo)準(zhǔn),就緊緊的跟著標(biāo)準(zhǔn)走(比如:別遺漏了forEach 方法的某個參數(shù))。
5. 或著跟隨主導(dǎo) Mozilla引領(lǐng)著JavaScript. JavaScript語言的創(chuàng)建者Brendan Eich, 還在持續(xù)開發(fā)。和其它瀏覽器相比,在Mozilla瀏覽器中這些新的語言特性最先可用。 如果你想給JavaScript添加新的語言特性,可以先瞧瞧Mozilla標(biāo)準(zhǔn)。例如,你想給Array對象擴展一個枚舉方法時,最好把這個方法取名為forEach而不是each. 如果你的確想提供尚不存在的語言特性,那么請緊緊跟隨著現(xiàn)有的標(biāo)準(zhǔn)走(參考上面的例子)。
6. 保持靈活 如果我想修改行為而不改變你的源碼,這容易不?如果不夠容易,讓它更容易些。
7. 管理內(nèi)存 大家擔(dān)心內(nèi)存泄漏,你要盡力而為。
8. 淘汰瀏覽器嗅探 貌似瀏覽器廠商們將永遠通過添加新特性來競爭;-) 作為庫的開發(fā)者,你要跟得上最新的潮流。偶爾瀏覽一次Ajaxian是不夠的,你必須奴隸般地閱讀每一篇博客文章以找到下一個hack. 瀏覽器嗅探會上癮的。
9. 小巧更佳 各種JavaScript庫已經(jīng)成熟。某些庫已經(jīng)應(yīng)用在主流網(wǎng)站上。但并不是所有人都裝了2MBit的DSL帶寬,因此請保持庫的小巧。更好的做法是,提供一個打包頁面,允許按照我的需求有效地構(gòu)建自己的庫。
10. 第十條規(guī)則 Good ol' tenth rule(好像是一個口語用法,不知道怎么翻譯好). 你可以始終依賴第十條規(guī)則。這就是: 保持可預(yù)測。 我應(yīng)該可以猜到你的方法是用來干嘛的。如果我不知道某個方法的名字,也應(yīng)該能讓我猜出來。
11. 附加規(guī)則
文檔,惱人但絕對是需要去做的。
你用的命名空間越多,我就越難記住,就如你的電話號碼一樣。
記?。嚎赡苡袛?shù)百萬人將執(zhí)行你的代碼。
相關(guān)文章
XDomainRequest之IE8和IE9發(fā)送跨域請求拒絕訪問解決方法
這篇文章主要介紹了XDomainRequest之IE8和IE9發(fā)送跨域請求拒絕訪問解決方法,需要的朋友可以參考下2023-06-06TypeScript判斷兩個數(shù)組的內(nèi)容是否相等的實現(xiàn)
本文主要介紹了TypeScript?判斷兩個數(shù)組的內(nèi)容是否相等,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11JavaScript判斷對象、數(shù)組是否包含某個屬性、某個值的方法
這篇文章主要給大家介紹了關(guān)于JavaScript判斷對象、數(shù)組是否包含某個屬性、某個值的相關(guān)資料,我們在實際的開發(fā)過程中,經(jīng)常需要判斷對象/數(shù)組是否包含某個屬性或者某個值,需要的朋友可以參考下2023-09-09JS判斷元素是否在數(shù)組內(nèi)的實現(xiàn)代碼
這篇文章主要介紹了JS判斷元素是否在數(shù)組內(nèi)的實現(xiàn)代碼,需要的朋友可以參考下2016-03-03僅IE9/10同時支持script元素的onload和onreadystatechange事件分析
測試結(jié)果可以看出,IE9后已經(jīng)開始支持script的onload事件了。一直以來我們判斷js文件是否已經(jīng)加載完成就是用以上的兩個事件。2011-04-04