유사배열 놀이
jQuery를 가지고 놀던중에...
반환값이 Object인데도 불구하고 fireBug나 크롬에서 array처럼 반환되는 것을
확인할 수 있다.
ex>
$('a') >> [<a href="http://vjeux.com/">vjeux</a>, <a href="http://google.com/">google</a>]
어떻게 했을까?
console.dir을 찍으면
>>
e.fn.e.init[1]
값이 나온다 클릭하여
펼쳐보자
e.fn.e.init[1]
이렇게 나오는것을 확인할 수
있다.
다른 유사객체인 Argument,
NodeList를 비교해서 확인해 보자.
NodeList[1]
두가지 공통점을 발견할수
있다.
인덱스가 0,1... 처럼
생겼다.
length값을 가지고
있다.
그럼
obj = { 0: 'a',
1:'b', length:2};
이렇게 하면 위와 똑같이
나올까?
실험을 해보기로
했다.
console.log로
찍으면
>>
Object
로
나온다.
무언가 부족한거
같다.
구글링을 통해 어떻게 만드는것일까
찾아보았다.
그랬더니....
- [0 .. length - 1]: Array elements
- length: Set to a positive integer
- splice: Any function (even empty)
요소가 필요하다
한다.
실제로 해당 요소를 넣고 아까 객체를
다시 만들어 보자.
obj
= { 0: 'a', 1:'b', length:2, splice: function() {}};
>>
["a", "b"]
["a", "b"]
결론
다소 뻘짓이고 별 쓰잘때기도
없다.
없다.
참고
싸이트
싸이트
댓글
댓글 쓰기