js는 정말 유연한 언어이므로 항상 사용자 정의 데이터 유형을 만들 수 있는지 궁금해했습니다. 마침내 나는 하나를 창조하려고 노력했다. 나는 단순한 클래스에 대해서 말하는 것이 아니라 js 네이티브처럼 행동하는 것에 대해 이야기하고 있습니다. 범위 데이터 형식을 만들겠습니다. 수학 범위는 (2.5; 9) 또는 (-Infinity; 5)이며 범위의 합계도 지원합니다 (2; 7) u (9; 27). 반복자를 쉽게 만들 수 있습니다. '에 대해 더 .... 예를 들어, 구문 JS 정기적를 지원하는 데 싶습니다, 또는 길이 속성은 단계 속성에 내놓고 calculeted. 슬프게도javascript - 사용자 정의 데이터 유형 - 필요한 정보/알아야 할 내용
내가 눈치 챘을 _ 반복자 _는 FF에서 여전히 지원되는지 열거되지 않은 다른 특성을함으로써 반복자를 준비 할 수 있어야 내가 알고
:.
-Object.create/defineProperties
,-getters/세터 -use
엄격한 (성능을 극대화하기 위해)
- _ 반복자 _ (실제로는 지원되지 않는)
이 유용 할 수있는 다른 있나요?
Atm. 나는 이렇게 할 것입니다 :
저는 단계 범위와 저장 범위가 변경 될 때마다 반복자를 미리 계산하기 위해 로컬 범위에서 숨겨진 값을 생성합니다. 둘 모두를 사용자에게 보이지 않게하기. 모든 프로퍼티는 단계를 제외하고는 열거 할 수 없다. - it는 반복자 재 계산으로 추가 될 것이다.
local scope:
ranges:[[2;7]] // more arrays if it'd be sum
iterator:[2,4,6]
//other internal variables
not enumerable:
array: // returns copy of iterator using getter
//some other useful properties
enumerable:
0:2
1:4
2:6
그것이 좋은 생각, 또는 그것을 다른 더 적절한 방법이 있습니다, 그래서 간단한 범위 [2는 7 단계 2와 같을 것이다? 이 클래스가 + -와 같은 연산자를 사용하도록 허용 할 수 있습니까?