jQuery总体架构的理解
jQuery腳本總體結構來說,有如下形式:
(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);對這樣的結構不很理解,也沒做深究,只知道和和所謂的
Technorati 標簽: JQuery,Javascript,Web前端js閉包的概念相關,今天查了一些資料,有了些基本的理解。實際是定義了一個全局函數(shù),前一個括號為一個匿名函數(shù),后面為函數(shù)的調(diào)用。可以這樣理解:
var fun=function(window, undefined){ ... ... }fun(window);如http://streamlet77.javaeye.com/blog/914305的解釋可以比較好的說明:
整個腳本是一個匿名函數(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對象的一個屬性,并可以簡寫為“$”。
轉(zhuǎn)載于:https://www.cnblogs.com/lazeman/archive/2011/03/05/1971884.html
總結
以上是生活随笔為你收集整理的jQuery总体架构的理解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 宝马x5L自带360全景的打转向有影像吗
- 下一篇: Envy-便当的显卡驱动布置剧本