我想弄清楚使用$() 和$.来自其他开发人员的区别。
据我的理解,$()指的是 中的对象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 字符串创建的匹配元素的集合