js 에서 디지털 속성 명 을 가 진 대상 을 배열 로 변환 합 니 다.
var obj = {};
obj[0] = 1;
obj[1] = 2;
이 대상 은 배열 형식 이 아 닙 니 다.그러면 배열 형식 으로 바 꿀 방법 이 있 습 니까?jQuery 코드 에서 Array.prototype.slice 를 사용 하여 이 대상 을 배열 로 바 꾸 었 습 니 다.그러나 저 는 여러 번 시 도 했 지만 안 됩 니 다
var obj = {};
obj[0] = 1;
obj[1] = 2;
alert(Array.prototype.slice.call(obj));
위의 코드 는 IE 에서 직접 잘못 보 고 했 습 니 다.Firefox 에서 잘못 보 고 는 하지 않 았 지만 출력 내용 은 비어 있 습 니 다.전환 에 실패했다 는 얘 기다.이러한 내 장 된 방법의 문 제 는 ECMA-262 를 찾 는 것 이 좋 습 니 다.slice 방법의 집행 절 차 는 다음 과 같 습 니 다
1. Let A be a new array created as if by the expression new Array().
2. Call the [[Get]] method of this object with argument "length".
여기 서 매개 변수 length 를 언급 했 습 니 다.obj 대상 은 숫자 색인 이 있 지만 length 속성 이 없습니다.문 제 는 바로 여기에 있다.slice 방법 은 이 대상 의 길 이 를 모른다.코드 를 간단하게 수정 하고 length 속성 을 추가 합 니 다.출력 내용 은"1,2"입 니 다.복사 에 성 공 했 습 니 다.그것 은 slice 방법 을 호출 하 는 this 에 디지털 색인 과 length 속성 이 있 으 면 배열 로 전환 할 수 있다 는 것 을 설명 하 는 것 입 니까?
이 법칙 은 대부분의 브 라 우 저 에서 성립 된다.그러나 IE 환경 에서 Html Collection 과 같은 DOM 요소 의 집합 은 상기 특징 을 가지 더 라 도 slice 를 호출 할 때 오류 가 발생 할 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
java 반사에 근거하여 대상 속성 값을 얻는 방법본고는 자바가 반사를 바탕으로 대상의 속성 값을 얻는 방법을 실례로 서술하였다.다음과 같이 여러분에게 참고할 수 있도록 공유합니다. 반사 메커니즘을 통해 대상의 속성과 속성 값을 얻을 수 있습니다. 대상에서priva...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.