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