日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
詳解Javascript框架中的全局變量

對于Javascript框架,大家還是比較理解的。對于Javascript框架中的全局變量,大家還是要仔細(xì)的思考,這樣才能在開發(fā)過程中達(dá)到事半功倍的效果。

縱觀各大類庫的實(shí)現(xiàn),一開始基本都是定義一個(gè)全局變量,然后對它進(jìn)行擴(kuò)展。如Prototype.js的Prototype,mootools的Native,Base2的Base,Ext的Ext,JQuery的JQuery,YUI的YUI,dojo的dojo,MochiKit的MochiKit等等。從全局變量的污染程度來看,分為兩大類,Prototype,mootools與Base2歸一類。Prototype的哲學(xué)是對JS原生對象進(jìn)行擴(kuò)展。早些年,Ptototype差點(diǎn)成為事實(shí)的標(biāo)準(zhǔn),因此基本沒有考慮到與其他庫的共存問題?;赑rototype,也發(fā)展出諸如script.aculo.us,rico,Plotr,ProtoChart,Scripty2等非常優(yōu)秀的類庫以及一大堆收費(fèi)插件,非JQuery那一大堆垃圾插件所能比擬的。不過,有點(diǎn)淵源的插件幾乎與Prototype有關(guān),如著名的lightbox。mootools是Prototype的升級版,更加OO,全面復(fù)制其API。Base則是想修復(fù)IE的Bug,讓IE擁有標(biāo)準(zhǔn)瀏覽器的API,因此也把所有原生對象污染一遍。

剩下幾個(gè)大類庫就奉行非侵入的原則,盡量減少全局變量。如Ext還有更多小型類庫,它會(huì)選擇一個(gè)自定義對象(其實(shí)也是window的一個(gè)自定義屬性),然后對它的屬性進(jìn)行擴(kuò)展?;舅悸肥?/p>

 
 
  1. Ext = {};   
  2. Ext.Element= function(){}   
  3. Ext.DomQuery = function(){}   
  4. Ext.DomHelper = function(){} 

jQuery也是一個(gè)window自定義屬性,而且從一開始就污染了兩個(gè)(JQurey與$),因此一旦其他類庫占用了$,它就退回用JQuery。它與Ext最大的不同的是。它是一個(gè)函數(shù)對象(Function),而不是一個(gè)純對象(Object)。它的所有擴(kuò)展都是基于它的JQuery.fn即JQuery.prototype。其他可能暴露出來的變量都收到閉包與函數(shù)中。

dojo上來就來就構(gòu)建它無擬倫比的包機(jī)制。整個(gè)命名空間都是由eval生成,然后再慢慢往dojo上添加屬性,情況同Ext。不過,它的設(shè)計(jì)是我見過的類庫中最復(fù)雜的,涉及的領(lǐng)域也非常廣泛,搞到代碼量達(dá)到驚人的9千行(兼注釋)。

MochiKit不知是不是從dojo中派生出來,沒怎么研究。但它的組織形式與Ext與dojo很相似。

YUI與JQuery很相似,是一個(gè)函數(shù)對象,只不過它后面就沒有像JQuery那么瘋狂,什么都往原型中加。無疑,YUI與JQuery的理念是非常新穎的,函數(shù)比對象更能玩出花樣,起碼做鏈?zhǔn)讲僮饕草p松性。但JQuery一開始就瞄準(zhǔn)頁面的那個(gè)DOM元素,而YUI,dojo,Ptototype,mootools等具有強(qiáng)大繼承機(jī)制的,更樂意創(chuàng)建一個(gè)類,這就是JQuery在UI怎么也比不上它的前輩的原因。另外,YUI的作者們在CSS,HTML也造詣極深,因此其UI設(shè)計(jì)是非常值得學(xué)習(xí)的。


網(wǎng)站標(biāo)題:詳解Javascript框架中的全局變量
網(wǎng)站URL:http://www.dlmjj.cn/article/dhesoei.html