var username = $("#username"),
password = $("#password"),
allFields = $([]).add(username).add(password);
Что такое allFields? Что такое $ ([])?
Будучи новичком в Javascript / jQuery, я никогда раньше не видел эту запись в $ ([]), и меня интересуют связанные с ней методы.
Учитывая, что его "$ ([])", его сложно найти. А поиск в Google массивов в Javascript (предполагающий, что это массив какого-то рода) выдает типичные массивы, которые я уже видел.
Так, что такое $ ([])? Кто-нибудь может указать мне какую-то документацию? Мне интересно узнать, как использовать эту странную вещь.
Функция jQuery принимает массив узлов DOM.
$([document.body])
например, который вернет объект jQuery, упаковав все элементы DOM, переданные в этот массив. Однако, поскольку в вашем примере нет объекта DOM для начала, и это просто пустой массив, нет необходимости даже передавать пустой массив.
Вызов функции jQuery без каких-либо аргументов возвращает пустой набор. Взято из документации по jQuery,
Возврат пустого набора
Начиная с jQuery 1.4, вызов метода jQuery() без аргументов возвращает пустой набор jQuery. В предыдущих версиях jQuery возвращался набор, содержащий узел документа.
Итак, ваш пример будет работать так же, если вместо этого вы вызовете
$().add(username).add(password);
Как упоминалось в других ответах и документах, передача пустого массива требовалась до версии 1.4.
Я полагаю, что он создает пустой объект коллекции jQuery.
[] это пустой массив. Обертывание с помощью $() перегружает его функциями jQuery.
В javascript вы можете создать массив следующим образом:
var foo = [];
Это пустой массив передается при создании объекта jQuery. Предположительно, чтобы инициализировать что-то.
В этом нет необходимости, по крайней мере, в последних версиях jQuery.
Вот пример без массива: http://jsfiddle.net/MAzLN/
Работает нормально, так как alert()
показывает один элемент в объекте.
jQuery инициализирует свойство length
значением 0
при создании объекта, поэтому я не уверен, какова цель, если только это не требовалось в прошлом.