Iteration&Generator - ChoDragon9/posts GitHub Wiki
Interface
- 인터페이스란 사양에 맞는 값과 연결된 속성키의 셋트
- 어떤 Object라도 인터페이스의 정의를 충족시킬 수 있다.
- 하나의 Object는 여러개의 인터페이스를 충족시킬 수 있다.
Interface Test
- test라는 키를 갖고
- 값으로 문자열인자를 1개를 받아 불린결과를 반환하는 함수가 온다.
{
test(str){ return true; }
}
Iterator Interface
- next라는 키를 갖고
- 값으로 인자를 받지 않고 IteratorResultObject를 반환하는 함수가 온다.
- IteratorResultObject는 value와 done이라는 키를 갖고 있다.
- 이 중 done은 계속 반복할 수 있을 지 없을지에 따라 불린값을 반환한다.
{
data: [1,2,3,4],
next(){
return {
done: this.data.length == 0,
value: this.data.pop()
}
}
}
Iterable Interface
Symbol.iterator
라는 키를 갖고- 값으로 인자를 받지 않고
Iterator Object
를 반환하는 함수가 온다.
{
[Symbol.iterator](){
return {
next(){ return { value: 1, done: false} }
}
}
}