2013-07-02 2 views
1

Возвращаемое значение $(undefined) - это объект или массив или что?

тело $:

return new jQuery.fn.init(selector, context, rootjQuery); 

Тело частиц jQuery.fn.init является:

// HANDLE: $(""), $(null), $(undefined), $(false) 
    if (!selector) { 
      return this; 
    } 

Я понимаю, что:

return new jQuery.fn.init(selector, context, rootjQuery); 
      ~~~~~~~~~~ 
       ^
       | 
       this? 

ответ

3

No. Используется с new keyword , поэтому jQuery.fn. не имеет значения. Важным является его .prototype, который является jQuery.fn. Для получения дополнительной информации см. this question.

И что такое возвращаемое значение $(undefined)?

Это пустой объект, наследуемый от прототипа jQuery, так что это то же самое, что и Object.create($.fn).

0

Результатом является объект jQuery, который не содержит согласованных элементов DOM; то есть «пустой» объект jQuery.

0

$(undefined) вернет экземпляр jQuery с помощью селектора "".

Попробуйте сами с этим кодом:

var output = ''; 
var jq = $(undefined); 

for(var x in jq) { 
    output += x + ' => "' + jq[x].toString() + '"' + "\n"; 
} 

alert(output); 

Пример вывода будет примерно так: http://pastebin.com/MwKYFM5w

+0

Нет, пустая строка не является на самом деле селектор - это будет обрабатываться как ' undefined' :-) – Bergi

+0

Так будет '$ (undefined)' truncate 'undefined' в' '' '? –

+0

Они оба будут рассматриваться как «без селектора» - результатом является даже не пустая коллекция (с параметрами 'length' 0,' context' и 'selector', а пустой объект без каких-либо свойств. – Bergi

Смежные вопросы