Что быстрее jQuery: селекторы или методы?

Допустим, у меня есть $ ('mySelector: first'); и $ ('mySelector'). First (); . Какой способ наиболее эффективен? Я просмотрел исходный код, но так и не смог его понять.

Похоже, что в первом случае jQuery просматривает каждый элемент, пока не получит первый:

CHILD: function( elem, match ) {
        var type = match[1],
        node = elem;
        switch ( type ) {
            ...
         case "first":
          while ( (node = node.previousSibling) )  {
           if ( node.nodeType === 1 ) { 
            return false; 
           }
          }
          if ( type === "first" ) { 
           return true; 
          }
          node = elem;
                ...
        }
}

Во втором случае jQuery нарезает коллекцию, но я не уверен, насколько он эффективен:

function first() {
  return this.eq( 0 );
};

function eq( i ) {
  return i === -1 ?
    this.slice( i ) :
    this.slice( i, +i + 1 );
};
9
задан Maksim Vi. 31 January 2011 в 19:22
поделиться