YArray.test
YArray.test = function(o) {
var r = 0;
if (Y.Lang.isObject(o)) {
if (Y.Lang.isArray(o)) {// , 。
r = 1;
} else {
try {
// indexed, but no tagName (element) or alert (window),
// or functions without apply/call (Safari
// HTMLElementCollection bug).
if ((LENGTH in o) && !o.tagName && !o.alert && !o.apply) {// o length, tagName ( Dom ), window, apply
r = 2;
}
} catch (e) {}
}
}
return r;
};
주석을 보니 사파리의 버그를 극복하는 것 같다.
그래서 이런 문장을 찾았다.
http://www.cnblogs.com/lecaf/archive/2011/04/02/2002985.html
입소문을 탄 호사도 논의했다.
var divs = document.getElementsByTagName('div');
alert(typeof divs);
alert(divs.length);
이 코드는 Safari 아래에서 볼 수 있습니다. divs의 type은function입니다.
하지만 divs 자체는 NodeList입니다.
그럼 divs 자체가 NodeList인데 왜 굳이 그의 apply 방법이 없다고 판단해야 합니까?
보통 length 속성이 있는 function을 방지하기 위해서 NodeList를 사칭하는 것 같아요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다른 사람의 웹사이트 편집: contenteditable 및 designMode그래도 우리가 그렇게 할 수 있다고 생각하는 것은 멋진 일입니다. 제가 강조하고 싶었던 일종의 관련 API가 실제로 몇 개 있기 때문에 오늘 그것을 가져왔습니다. contenteditable는 "true" 값이 할당...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.