jQuery 物件

每次呼叫 jQuery 時,通過使用 $()jQuery(),在內部建立 newnew 例項。這是顯示新例項的原始碼

// 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,如 .eachchildrenfilter 等的公開方式)之外,內部 jQuery 還將建立一個類似於陣列的結構來匹配選擇器的結果(前提是除了什麼都沒有,undefinednull 或類似的東西作為引數傳遞)。在單個專案的情況下,此類陣列結構將僅保留該專案。

一個簡單的演示是找到一個帶有 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