我想弄清楚使用$()
和$.
来自其他开发人员的区别。
据我的理解,$()
指的是 中的对象DOM
,但我100%
不清楚它是如何$.
工作的。我以前使用过这种$.
格式,但从来不明白它是如何工作的。
例如:
$.each(element, function() {});
或者$.fn
等等……
很高兴能对这个主题有所了解和澄清。
我想弄清楚使用$()
和$.
来自其他开发人员的区别。
据我的理解,$()
指的是 中的对象DOM
,但我100%
不清楚它是如何$.
工作的。我以前使用过这种$.
格式,但从来不明白它是如何工作的。
例如:
$.each(element, function() {});
或者$.fn
等等……
很高兴能对这个主题有所了解和澄清。
$
是一个标识符。它用作变量。它具有分配给它的功能。
放在()
一个函数之后会调用它。jQuery 分配给它的函数会根据你传递给它的参数类型做很多不同的事情。(这是可怕的超载)。(例如,如果您向它传递一个函数,它会在文档就绪事件触发时调用该函数。如果您向它传递一个 HTML 字符串,它将创建该 HTML 的 DOM 表示并将其包装在一个 jQuery 对象中。如果您通过它是一个 DOM 节点,它会将该节点包装在一个 jQuery 对象中。如果你传递给它一个 CSS 选择器,它会在文档中搜索匹配的 DOM 节点并用一个 jQuery 对象包装它们)。
在 JavaScript 中,函数是对象。对象可以具有属性。您可以通过 访问对象上的属性$.name_of_property
。这些属性也可以具有分配给它们的功能(或其他对象)。
基本上,$()
它是一个构造函数——你传递给它一个 DOM 选择器,它返回一个jQuery
对象。
另一方面,还是jQuery的一个原型函数。$.each
$().each
$.
$().
我由@apsillers 纠正:$().each
是原型函数,但$.
(即$.each
)直接在jQuery
, 或$
.
jQuery.fn = jQuery.prototype = {
.....
.....
.....
// Execute a callback for every element in the matched set.
// (You can seed the arguments with an array of args, but this is
// only used internally.)
each: function( callback, args ) {
return jQuery.each( this, callback, args );
},
....
....
};
如您所见,$().each
是一个prototype
函数。jQuery.each
是一种内部方法。直接定义在jQuery
.
取自jQuery 源代码。
$()
创建一个包含一些元素列表的 jQuery 实例对象。方法
$
是唯一的 jQuery 对象,它有一些非实例特定的方法。(将它们视为“静态”方法,借用其他语言的术语可能会有所帮助)。
这个由 标识的唯一 jQuery 对象$
是一个函数(这就是它可以调用为 的原因$()
)。但是,JavaScript 中的函数是对象,因此它们本身可以具有属性和成员函数。
$
只是一个具有短名称的变量,它指向与jQuery
. $()
与jQuery()
(jQuery
作为函数调用)$.foo
相同,与jQuery.foo
. jQuery.foo
访问对象的foo
属性jQuery
——函数对象也可以有其他属性。
$
是 jQuery 对象,$()
而是对该对象的评估(这也是一个函数)。
的含义$()
是(来自http://api.jquery.com/jQuery/):
返回基于传递的参数在 DOM 中找到或通过传递 HTML 字符串创建的匹配元素的集合