成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳解Javascript框架中的全局變量

開發 前端
本文將介紹Javascript框架中的全局變量,簡單的代碼。希望通過本文,能讓大家對全局變量有個全新的認識。

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

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

剩下幾個大類庫就奉行非侵入的原則,盡量減少全局變量。如Ext還有更多小型類庫,它會選擇一個自定義對象(其實也是window的一個自定義屬性),然后對它的屬性進行擴展。基本思路是

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

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

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

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

YUI與JQuery很相似,是一個函數對象,只不過它后面就沒有像JQuery那么瘋狂,什么都往原型中加。無疑,YUI與JQuery的理念是非常新穎的,函數比對象更能玩出花樣,起碼做鏈式操作也輕松性。但JQuery一開始就瞄準頁面的那個DOM元素,而YUI,dojo,Ptototype,mootools等具有強大繼承機制的,更樂意創建一個類,這就是JQuery在UI怎么也比不上它的前輩的原因。另外,YUI的作者們在CSS,HTML也造詣極深,因此其UI設計是非常值得學習的。

原文標題:javascript框架之全局變量

鏈接:http://www.cnblogs.com/rubylouvre/archive/2009/11/05/1596501.html

責任編輯:彭凡 來源: 博客園
相關推薦

2024-05-29 08:49:22

Python全局變量局部變量

2010-11-12 10:08:55

SQL Server全

2013-07-17 16:16:06

Android全局變量定義全局變量Application

2010-09-08 17:25:17

SQL全局變量

2009-12-09 17:07:08

PHP unset全局

2010-02-01 14:28:37

Python全局變量

2015-01-07 14:41:32

Android全局變量局部變量

2010-03-09 14:12:55

Python全局變量

2017-02-08 12:28:37

Android變量總結

2025-06-03 08:50:00

Static全局變量C 語言

2013-07-25 15:15:26

iOS開發學習iOS全局變量

2009-09-24 09:28:00

Scala講座全局變量scala

2011-08-23 13:54:10

LUA全局變量

2013-07-22 14:07:47

2020-07-20 12:43:31

Go變量命名

2014-06-23 10:25:12

2009-12-04 13:14:19

PHP Global變

2009-12-04 13:31:21

PHP全局變量不能生效

2021-02-26 13:42:01

函數全局變量

2024-05-27 09:18:18

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品视频导航 | 国产精品无码久久久久 | 国产精品99免费视频 | 亭亭五月激情 | 国产区精品在线观看 | 久久激情视频 | 久久国产传媒 | 国产一级片免费看 | 午夜一区 | 亚洲视频二区 | 精品av | 亚洲国产一区二区三区 | 最近中文字幕免费 | 国产精品久久久久久中文字 | 亚洲一区在线观看视频 | 成人精品一区二区三区中文字幕 | 丝袜美腿一区二区三区动态图 | 偷牌自拍| 国产视频中文字幕在线观看 | 欧美一区二区三区大片 | 亚洲第一在线 | 亚洲精品久久 | 欧美视频成人 | 国产黄色av电影 | 在线不卡视频 | 久久青青 | 久久aⅴ乱码一区二区三区 亚洲国产成人精品久久久国产成人一区 | av影片在线 | 户外露出一区二区三区 | 激情网站在线观看 | 国产精品视频久久久久 | 操操日| 国产精品色哟哟网站 | 国产精品中文字幕一区二区三区 | 亚洲精品一区二区在线观看 | 日韩精品一区二区三区中文在线 | 国产精品电影在线观看 | 中文字幕亚洲国产 | 欧美性高潮 | 91精品国产一区二区在线观看 | 久久一二 |