讀jquery之一(jquery物件的組成)

2022-02-10 17:18:33 字數 2322 閱讀 5662

**:

以下是jquery

1.3.2 **片段

js**

...   

jquery = window.jquery = window.$ = 

function

( selector, context ) ;   

jquery.fn=jquery.prototype=,   

...   

}   

jquery.fn.init.prototype = jquery.fn;   

...  

...

jquery = window.jquery = window.$ = function( selector, context ) ;

jquery.fn=jquery.prototype=,

...}jquery.fn.init.prototype = jquery.fn;

...

初看上去像是在用原型方式

定義乙個類jquery($),但實際我們使用時是函式呼叫$("#id"),卻不是new $("#id")。

function jquery中new了乙個function init的例項,然後返回。見具名函式的呼叫方式(3)

。jquery寫的實在詭異,它把init又掛在了function jquery的prototype上,閱讀起來有些繞人。

jquery.fn.init.prototype = jquery.fn;是關鍵的一句。該句把function jquery的原型賦值給了function init的原型。當呼叫$("#id")時返回的物件組成包括兩個部分。

1,由function init中this帶的(如length,context);

2,由function jquery的prototype帶的(如size,each,attr等方法);

模仿jquery來寫乙個

js**

function

$(selector)   

$.prototype=

else

this

.length=1;   

},   

attr:

function

(name,value),   

hide:

function

(),3000);   

return

this

;//鏈式呼叫

}   

}   

$.prototype.init.prototype=$.prototype;  

簡單起見,這裡$只傳html element或元素id,this上掛了length屬性,賦值為1。當我們如下呼叫時

js**

varobj = $();   

console.dir(obj);  

這行**實際沒有什麼意義,只是為了測試呼叫後obj的組成。firebug控制台輸出如下:

length:0;

init:function

attr:function

hide:function

即obj物件是由function init中this及function $.prototype組成的。

測試下$.prototype上的方法(假設頁面body新增了id=content):

js**

$("content"

).attr(

"bgcolor"

,"red"

).hide();  

先呼叫attr新增了id=content屬性,稍候就隱藏了。

總結下:

jquery物件指的是jquery.prototype.init的例項,簡單的說就是new jquery.prototype.init。

這裡jquery.prototype.init的型別是function,可以看成是乙個類。原始碼中如下:

js**

jquery = window.jquery = window.$ = 

function

( selector, context ) ,  

jquery物件由以下部分組成:

1,掛在jquery.prototype.init中的this上的屬性或方法。

2,掛在jquery.prototype.init.prototype上的屬性或方法。

3,因為把jquery.prototype賦值給了jquery.prototype.init.prototype,所以掛在jquery.prototype上的屬性和方法也jquery物件的一部分。

JQuery 學習之 一

關於jquery 的歷史就不再講敘了,網路上比比皆是,呵呵不過想學習一門新的技術,了解它的前生和現在的應用範圍以及以後的發展領域是值得翻閱滴.剛剛開始 得做好筆記 推薦 1 官方以及論壇 2 推薦網頁 http www.cssrain.cn demo lab e7 ac ac e4 b8 80 e7...

jquery外掛程式之一些小鏈結

1.驗證 驗證的外掛程式 2.前端ui 首頁動態的外掛程式 3.bootstrap 用於響應式前端架構 響應式 不用重新整理整個頁面,可區域性重新整理部分 傳統的後台管理頁面,例如有使用者密碼彈出框之類的 小外掛程式 比如滑鼠移動框 bootstrap適合前端和後台的,提供的功能有js,css,和字...

JQuery 筆記 一 jQuery核心

前言 jquery核心是最基礎的jquery物件,或者叫函式,有了它我們才可以進行其它的操作,所以,需要認真掌握。jquery核心函式 1 獲取jquery物件 包裝集 對於jquery來說,獲取物件然後進行相關的操作,所以獲取物件是第一步,這裡提供了三種獲取jquery物件的模式,而通過選擇器模式...