3

我想弄清楚使用$()$.来自其他开发人员的区别。

据我的理解,$()指的是 中的对象DOM,但我100%不清楚它是如何$.工作的。我以前使用过这种$.格式,但从来不明白它是如何工作的。

例如:

$.each(element, function() {});或者$.fn等等……

很高兴能对这个主题有所了解和澄清。

4

5 回答 5

13

$是一个标识符。它用作变量。它具有分配给它的功能。

放在()一个函数之后会调用它。jQuery 分配给它的函数会根据你传递给它的参数类型做很多不同的事情。(这是可怕的超载)。(例如,如果您向它传递一个函数,它会在文档就绪事件触发时调用该函数。如果您向它传递一个 HTML 字符串,它将创建该 HTML 的 DOM 表示并将其包装在一个 jQuery 对象中。如果您通过它是一个 DOM 节点,它会将该节点包装在一个 jQuery 对象中。如果你传递给它一个 CSS 选择器,它会在文档中搜索匹配的 DOM 节点并用一个 jQuery 对象包装它们)。

在 JavaScript 中,函数是对象。对象可以具有属性。您可以通过 访问对象上的属性$.name_of_property。这些属性也可以具有分配给它们的功能(或其他对象)。

于 2013-08-16T15:02:36.087 回答
5

基本上,$()它是一个构造函数——你传递给它一个 DOM 选择器,它返回一个jQuery对象。

另一方面,还是jQuery的一个原型函数。$.each $().each$. $().

编辑:

我由@apsillers 纠正:$().each是原型函数,但$.(即$.each)直接在jQuery, 或$.

来自 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 源代码

于 2013-08-16T15:02:18.337 回答
5

$()创建一个包含一些元素列表的 jQuery 实例对象。方法

$是唯一的 jQuery 对象,它有一些非实例特定的方法。(将它们视为“静态”方法,借用其他语言的术语可能会有所帮助)。

这个由 标识的唯一 jQuery 对象$是一个函数(这就是它可以调用为 的原因$())。但是,JavaScript 中的函数是对象,因此它们本身可以具有属性和成员函数。

于 2013-08-16T15:02:52.323 回答
2

$只是一个具有短名称的变量,它指向与jQuery. $()jQuery()jQuery作为函数调用)$.foo相同,与jQuery.foo. jQuery.foo访问对象的foo属性jQuery——函数对象也可以有其他属性。

于 2013-08-16T15:03:28.050 回答
2

$是 jQuery 对象,$()而是对该对象的评估(这也是一个函数)。

的含义$()是(来自http://api.jquery.com/jQuery/):

返回基于传递的参数在 DOM 中找到或通过传递 HTML 字符串创建的匹配元素的集合

于 2013-08-16T15:04:03.867 回答