JQuery: array zero vs function get zero: [0] vs get (0)

Есть ли какая-то причина, по которой я должен использовать $('#x>div').get(1), когда я мог бы просто использовать $('#x>div')[1]? Есть ли разница?

Ответы

Ответ 1

Нет, никакой разницы. jQuery содержит все узлы DOM в массиве.

$().get(1) === $()[1]

- фрагмент исходного кода jQuery -

get: function( num ) {
    return num == null ?
        // Return a 'clean' array
        this.toArray() :

        // Return just the object
        ( num < 0 ? this[ this.length + num ] : this[ num ] );
},

Как вы можете видеть, .get() без аргументов вернет все узлы в виде массива. Это невозможно сделать с помощью скобок.

Ответ 2

Нет, а производительность примерно того же, поскольку создание объекта jQuery доминирует над временем доступа к массиву/функции:

Browser      get Ops/sec  array Ops/sec  #tests
Chrome 9     20,555       22,671         2