最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jQuery總體架構(gòu)的理解分析

 更新時間:2011年03月07日 09:27:48   作者:  
jQuery總體架構(gòu)的理解,學(xué)習(xí)jquery的朋友可以參考下。
jQuery腳本總體結(jié)構(gòu)來說,有如下形式:
復(fù)制代碼 代碼如下:

(function( window, undefined ) {
// Define a local copy of jQueryvar jQuery = function( selector, context
) { // The jQuery object is
actually just the init constructor
'enhanced' return new
jQuery.fn.init( selector, context ); },
// Expose jQuery to the global objectwindow.jQuery =
window.$ = jQuery;
})(window);

對這樣的結(jié)構(gòu)不很理解,也沒做深究,只知道和和所謂的
Technorati 標(biāo)簽: ,,
js閉包的概念相關(guān),今天查了一些資料,有了些基本的理解。
實際是定義了一個全局函數(shù),前一個括號為一個匿名函數(shù),后面為函數(shù)的調(diào)用??梢赃@樣理解:
復(fù)制代碼 代碼如下:

var fun=function(window, undefined){
... ...
}
fun(window);



整個腳本是一個匿名函數(shù)(暫時叫它mainFn吧),函數(shù)被加載的時候便開始執(zhí)行,mainFn可以接收兩個參數(shù),執(zhí)行時只傳遞一個參數(shù)window.

1. 具體解釋下這個寫法的意思:
2. window 函數(shù)執(zhí)行時會傳入window,這個傳入的window是全局對象(通常為Window)的
3. 一個屬性且window=this,而傳入mainFn函數(shù)中作為其參數(shù)時,它會被存儲在
4. mainFn的調(diào)用對象中.在原型鏈中查找變量的策略是(非嵌套函數(shù)):先查找調(diào)用
5. 對象,再查找全局對象,所以這使得整個mainFn中使用的window時查找效率更高
6. undefined 由于執(zhí)行時并未傳遞第二個參數(shù),故變量undefined的值為undefined.早期版
7. 本的瀏覽器中全局對象可能沒有undefined屬性,所以不能直接使用它.通常避免
8. 這個問題的寫法是 window.undefined = window.undefined

然后在最后讓jQuery庫中最重要的對象jQuery成為了window對象的一個屬性,并可以簡寫為“$”。

其它的補充資料:
JQuery是個出色的javascript庫,最近結(jié)合它寫javascript,看了下源碼。
先從整體、全局的看,jQuery的源碼幾乎都在下面的代碼中:
復(fù)制代碼 代碼如下:

(function() {

//……

})();

第一個括號里面是個匿名函數(shù),第二個括號表示馬上執(zhí)行第一個括號里面的代碼。
首先明白,javascript里面是沒有命名空間的,要保證你的javascript函數(shù)、對象與其他的不沖突,這里用了javascript的一個技巧:你的所有javascript函數(shù)、對象都在一個匿名函數(shù)里面定義,確保了所定義的函數(shù)、對象的有效范圍,起到了命名空間的作用。既然作用范圍在這個匿名函數(shù)中,怎么被別人使用呢?下面看它的下面代碼:

var jQuery = window.jQuery = function(selector, context) {
//……
};

這里讓jQuery庫中最重要的對象jQuery成為了window對象的一個屬性,這樣就可以在其他地方像使用 document(document也是window的一個屬性)一樣使用jQuery了。也許使用過jQuery的朋友驚訝-我沒有使用jQuery對象,一直使用$的。沒錯,那是jQuery的同名對象:

window.$ = jQuery;

現(xiàn)在明白了吧。

這個庫的結(jié)構(gòu)是這樣的:
復(fù)制代碼 代碼如下:

1. (function(window, undefined){
2. var document = window.document;
3. var jQuery = ...
4. ...
5. ...
6. })(window);

(function(window, undefined){ var document = window.document; var jQuery = ... ... ... })(window);

整個腳本是一個匿名函數(shù)(暫時叫它mainFn吧),函數(shù)被加載的時候便開始執(zhí)行,mainFn可以接收兩個參數(shù),執(zhí)行時只傳遞一個參數(shù)window.
1. 具體解釋下這個寫法的意思:
2. window 函數(shù)執(zhí)行時會傳入window,這個傳入的window是全局對象(通常為Window)的
3. 一個屬性且window=this,而傳入mainFn函數(shù)中作為其參數(shù)時,它會被存儲在
4. mainFn的調(diào)用對象中.在原型鏈中查找變量的策略是(非嵌套函數(shù)):先查找調(diào)用
5. 對象,再查找全局對象,所以這使得整個mainFn中使用的window時查找效率更高
6. undefined 由于執(zhí)行時并未傳遞第二個參數(shù),故變量undefined的值為undefined.早期版
7. 本的瀏覽器中全局對象可能沒有undefined屬性,所以不能直接使用它.通常避免
8. 這個問題的寫法是 window.undefined = window.undefined

相關(guān)文章

  • jquery實現(xiàn)擲骰子小游戲

    jquery實現(xiàn)擲骰子小游戲

    這篇文章主要為大家詳細(xì)介紹了jquery實現(xiàn)擲骰子小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • jQuery+Ajax+PHP彈出層異步登錄效果(附源碼下載)

    jQuery+Ajax+PHP彈出層異步登錄效果(附源碼下載)

    本文我們給大家介紹如何使用jQuery+Ajax+PHP彈出層異步登錄的應(yīng)用。感興趣的朋友通過本文學(xué)習(xí)吧
    2016-05-05
  • jquery實現(xiàn)更改表格行順序示例

    jquery實現(xiàn)更改表格行順序示例

    本文主要介紹了jquery實現(xiàn)更改表格行順序示例,大家參考使用吧
    2014-04-04
  • jquery Banner輪播選項卡

    jquery Banner輪播選項卡

    這篇文章主要為大家詳細(xì)介紹了jquery Banner輪播選項卡效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • jQuery 設(shè)置 CSS 屬性示例介紹

    jQuery 設(shè)置 CSS 屬性示例介紹

    設(shè)置指定的CSS屬性或設(shè)置多個CSS屬性,下面有個不錯的示例,大可以參考下
    2014-01-01
  • jquery獲取a標(biāo)簽上的href值的示例代碼

    jquery獲取a標(biāo)簽上的href值的示例代碼

    jquery是一種廣泛使用的javascript庫,獲取a標(biāo)簽上的href值是一個常見的需求,要獲取a標(biāo)簽上的href值,只需使用選擇器選擇a元素,并使用attr()方法來獲取href屬性值,以下是一些使用jQuery獲取a標(biāo)簽上的href值的示例代碼,需要的朋友可以參考下
    2024-05-05
  • jQuery ajax動態(tài)生成table功能示例

    jQuery ajax動態(tài)生成table功能示例

    這篇文章主要介紹了jQuery ajax動態(tài)生成table功能,結(jié)合具體實例形式分析了jQuery基于ajax數(shù)據(jù)交互動態(tài)創(chuàng)建table表格的相關(guān)操作技巧,需要的朋友可以參考下
    2017-06-06
  • jQuery 獲取對象 定位子對象

    jQuery 獲取對象 定位子對象

    jQuery 獲取對象 定位子對象,學(xué)習(xí)jquery 定位子對象的朋友可以參考下。
    2010-05-05
  • jquery實現(xiàn)拖拽調(diào)整Div大小

    jquery實現(xiàn)拖拽調(diào)整Div大小

    這里給大家分享的是一段自己編寫的使用jQuery實現(xiàn)拽調(diào)整Div層大小的代碼,非常實用,推薦給有需要的小伙伴們。
    2015-01-01
  • 前端jQuery復(fù)制文本到剪貼板功能實現(xiàn)

    前端jQuery復(fù)制文本到剪貼板功能實現(xiàn)

    這篇文章主要介紹了前端如何使用jQuery實現(xiàn)點擊“復(fù)制”按鈕時,獲取并復(fù)制父級元素下子元素的文本HTML代碼的功能,文中給出了實現(xiàn)的詳細(xì)代碼,需要的朋友可以參考下
    2025-01-01

最新評論

崇仁县| 扎鲁特旗| 九台市| 宜君县| 天水市| 大邑县| 庆元县| 延长县| 鸡东县| 兴义市| 衡东县| 辽中县| 山丹县| 宁武县| 醴陵市| 绥芬河市| 神农架林区| 张家港市| 阿图什市| 安平县| 莒南县| 定日县| 漳平市| 崇州市| 滨海县| 马鞍山市| 许昌县| 夏邑县| 建阳市| 兴山县| 区。| 北安市| 西乌珠穆沁旗| 米泉市| 溧水县| 邢台市| 台东市| 云南省| 莱西市| 大洼县| 巴青县|