什么是jQuery中使用的$(0)和$(1)?

时间:2012-03-18 02:16:50

标签: jquery

在阅读以下性能测试时,我注意到作者使用了$(0)$(1)。这是什么目的?

http://jsperf.com/scriptjunkie-premature-3

var $a = $(0);

function fn_1() {
 var $a = $(this);
 if ($a.attr("rel") == "foo") {
  $a.addClass("foo");
 }
 else {
  $a.addClass("other");
 }
}

function fn_2() {
 $a.context = $a[0] = this; // fake the collection object
 if ($a.attr("rel") == "foo") {
  $a.addClass("foo");
 }
 else {
  $a.addClass("other");
 }
}

1 个答案:

答案 0 :(得分:1)

如果您查看jQuery source code,则可以看到init执行时调用了$()。此函数包含多个if语句,用于处理作为选择器传递的各种信息。在函数结束时,将调用以下内容:

return jQuery.makeArray( selector, this );

如果传递了12这样的数字,则对makeArray的调用只会将其转换为[1][2]等数组等等$(1)没有什么特别之处。