我打电话给一个像这样的汽车ID的div:
var car = $('#car');
console.log(car);
当我记录它时,它会在控制台中以这样的方式返回:
[div#car, context: document, selector: "#car", jquery: "1.9.0", constructor: function, init: function…]
日志中的“构造函数:函数”是否告诉我它已作为函数存储,如果是,为什么以及如何将其存储为对象?
答案 0 :(得分:1)
jQuery在接受参数时创建函数实例。在这种情况下,您发送了一个选择器,它是元素的id。收到此选择器后,jquery在“internal”jquery函数上使用new
关键字。结果是一个函数对象。每次使用$
或jQuery
时,都要求它提供一个jquery对象,该对象是new
发给jQuery函数的结果。这个对象附有很多东西,包括匹配选择器的元素数组,以及允许你访问API的jQuery原型。
所以,只是澄清一下。这是一个对象。它是由一个函数构建的。
以下是一些示例代码,可帮助您了解如何实现此目标。
首先,此演示是一个简单的jquery对象:http://jsfiddle.net/PbdCt/
HTML
<div id="car"></div>
JS
var car = $("#car");
console.log(car);
第二次,这是我写的一个例子
HTML
<div id="car"></div>
JS
var $ = (function(){
var $ = function(sel){
if( !(this instanceof $) ){
return new $(sel);
}
this.selector = sel;
this.element = document.getElementById(sel);
this.constructor = $;
this.init = function(){ /*init*/ };
};
return $;
})();
var car = $("car");
console.log(car);
您会注意到它们都记录了几乎完全相同的东西。 $
中没有魔法,它只是一个字符串,非常像Y
或jQuery
或HelloWorld
。
答案 1 :(得分:0)
没有。 构造函数:函数意味着它调用了jQuery构造函数,并使用给定的上下文,选择器进行调用。它返回jQuery对象。
现在car是一个jQuery对象。
您可以在car
对象上访问jQuery的所有方法。