jQuery 物件
每次呼叫 jQuery 時,通過使用 $()
或 jQuery()
,在內部建立 new
的 new
例項。這是顯示新例項的原始碼 :
// Define a local copy of jQuery
jQuery = function( selector, context ) {
// The jQuery object is actually just the init constructor 'enhanced'
// Need init if jQuery is called (just allow error to be thrown if not included)
return new jQuery.fn.init( selector, context );
}
在內部,jQuery 將其原型稱為 .fn
,這裡使用的內部例項化 jQuery 物件的樣式允許在沒有呼叫者明確使用 new
的情況下暴露該原型。
除了設定例項(這是 jQuery API,如 .each
,children
,filter
等的公開方式)之外,內部 jQuery 還將建立一個類似於陣列的結構來匹配選擇器的結果(前提是除了什麼都沒有,undefined
,null
或類似的東西作為引數傳遞)。在單個專案的情況下,此類陣列結構將僅保留該專案。
一個簡單的演示是找到一個帶有 id 的元素,然後訪問 jQuery 物件以返回底層 DOM 元素(當多個元素匹配或存在時,這也將起作用)。
var $div = $("#myDiv");//populate the jQuery object with the result of the id selector
var div = $div[0];//access array-like structure of jQuery object to get the DOM Element