jQuery(); //[]
jQuery("#footer"); //[<div id="footer">...</div>]
Ben böyle bir şey yapabileceğini biliyoruz:jQuery döndürülen değeri bir dizi gibi gösterir mi?
function kablam(tag) {
var els = document.getElementsByTagName(tag);
els.isKablam = true;
return els;
}
var body = kablam("body"); //[<body class="ask-page">...</body>]
body.isKablam; //true
document.getElementsByTagName
yeni döndü NodeList
bir "genişletilmiş" versiyonunu geri dönmek için. Ancak, jQuery bunun tersini yapar. Sonucu kendi içinde birleştirir (here ve here olarak görülebilir). Ayrıca, bu ona hiçbir şey geçerken bir dizi benzeri-nesne-o-görünüyor benzeri-bir-dizi döndürür nasıl açıklamıyor:
jQuery(); //[]
jQuery basitçe kendisini döndüren, bunu yaparken. (source)
Ya da aynı etmek Gövde etiketini seçtiğinizde, uzatmak
: hiç düşünmek gelmekjQuery("body"); //[<body class="ask-page">...</body>]
(source)
Veya, şey:
var o = {}, body = document.getElementsByTagName("body");
jQuery.merge(o, body); //Object, not [...]
Sayısal tuşların atanması önemsiz ve başka bir anahtar atamaktan farklı olmadığı için dizi benzeri nesnelerin döndürülmesi çok kolaydır. Ama jQuery bir diziyi "nasıl" gösterir?
Oldukça eminim .push 'gerekli değil :) –
Ayrıca, prototip üzerinde olması gerekmez. Bunu konsolda deneyin: 'a = {length: 0, ekleme: function() {}}' – Shmiddty