javascript 언어 확장: 대상 교체 가능 (1)
var ary = [1,2,3,"aa",4];
for(i in ary)
console.log(i); //
fireforx 및 기타 브 라 우 저 에서 실 현 된 js 언어 확장 에 each 문 구 를 추 가 했 습 니 다. each 는 in 과 유사 하지만 대상 의 속성 값 을 옮 겨 다 니 고 있 습 니 다.
var a = [1,2,3,4];
for each(v in a)
console.log(v); //
js 확장 에 있어 서 더욱 통용 되 는 교체 가능 한 대상 도 있 습 니 다. in 과 each 문 구 는 모든 교체 가능 한 대상 에 응용 할 수 있 습 니 다.교체 가능 대상 이란 '다음' 값 을 생 성 할 수 있 는 대상 으로 다음 과 같은 두 가지 기본 조건 을 만족 시 켜 야 한다. 1. 함수 의 를 포함해 야 한다.iterator__속성;2. 이 함 수 는 대상 을 되 돌려 야 합 니 다. 이 대상 은 다음 값 을 만 드 는 next 함수 속성 이 있어 야 합 니 다.일반적으로 우 리 는 이 대상 을 교체 기 대상 이 라 고 부른다.만약 당신 의 목적 이 유한 한 교체 기 를 만 드 는 것 이 라면 (죽은 순환 을 옮 겨 다 니 고 싶 지 않 으 시 죠?) 마지막 으로 교체 할 때 StopIteration 이상 을 던 져 야 합 니 다.이 이상 은 대상 일 뿐 구조 기 함수 가 아니 므 로 new 로 만 들 필요 가 없습니다.each 나 in 구문 내부 에서 이 이상 을 자동 으로 처리 할 수 있 기 때문에 교체 기 에서 뛰 어 나 기 위해 catch 를 직접 쓸 필요 가 없습니다.우 리 는 다음 함수 의 패 키 지 를 이용 하여 교체 가능 한 대상 을 함수 에 밀봉 합 니 다.
function get_itor(start,end){
return{
__iterator__:function(){
return {
next:function(){
if(start>end) throw StopIteration;
return start++;
}
};
}
};
}
다음
은 각각 in 과 each 로 교체 가능 한 대상 을 교체 합 니 다.var itor = get_itor(1,10);
for(i in itor)
console.log(i); //
for each(v in itor)
console.log(v); //
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.