jQuery(); //[]
jQuery("#footer"); //[<div id="footer">...</div>]
난 당신이 이런 식으로 뭔가를 할 수 있다는 사실을 알고 :jQuery는 반환 값을 배열처럼 어떻게 보이나요?
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
에서 반환 된 NodeList
의 "확장"버전을 반환합니다.
그러나 jQuery는 그 반대입니다. 결과를 자체에 병합합니다 (here 및 here 참조). 또한, 그것은 당신이 그것에 아무것도 통과하지 않는 경우는 배열과 같은 객체, 즉-외모 같은-AN-배열을 반환하는 방법을 설명하지 않습니다
jQuery(); //[]
당신이 jQuery를 단순히 그 자체를 반환, 그렇게합니다. (source)
또는 동일로는 body 태그를 선택하면, 확장
: 전혀 생각 올jQuery("body"); //[<body class="ask-page">...</body>]
(source)
또는 아무것도 :
var o = {}, body = document.getElementsByTagName("body");
jQuery.merge(o, body); //Object, not [...]
을
숫자와 같은 키를 할당하는 것이 쉽고 다른 키를 지정하는 것과 다르기 때문에 배열과 같은 객체를 반환하는 것은 매우 쉽습니다. 하지만 jQuery는 어떻게 배열처럼 보이게합니까?
나는'.push'가 필요 없다고 꽤 확신한다. :) –
또한, 프로토 타입에있을 필요는 없다. 콘솔에서 이것을 시도해보십시오 :'a = {length : 0, splice : function()}' – Shmiddty