Есть ли какая-то причина, по которой я должен использовать $('#x>div').get(1)
, когда я мог бы просто использовать $('#x>div')[1]
? Есть ли разница?
JQuery: array zero vs function get zero: [0] vs get (0)
Ответ 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