객체 지향 JavaScript — 생성기 및 지도
지금 http://jauyeung.net/subscribe/에서 내 이메일 목록을 구독하십시오.
JavaScript는 부분적으로 객체 지향 언어입니다.
JavaScript를 배우려면 JavaScript의 객체 지향 부분을 배워야 합니다.
이 기사에서는 생성기와 맵을 살펴보겠습니다.
발전기
제너레이터 함수를 사용하면 제너레이터 객체를 생성할 수 있습니다.
한 줄씩 실행하고
yield
로 결과를 반환한 다음 다시 호출될 때까지 일시 중지합니다.필요하지 않을 때 일시 중지되므로 무한 루프를 작성하는 데 사용할 수 있습니다.
예를 들어 다음과 같이 작성하여 생성기 함수를 만들 수 있습니다.
function* generatorFunc() {
yield 1;
yield 2;
yield 3;
}
generatorFunc
생성기 함수가 있습니다.function*
키워드로 표시됩니다.yield
키워드를 사용하면 값을 반환하고 값을 일시 중지할 수 있습니다.그런 다음 생성기를 만든 다음
next
를 호출하여 사용할 수 있습니다.const gen = generatorFunc();
console.log(gen.next());
console.log(gen.next());
console.log(gen.next());
console.log(gen.next());
그런 다음 우리는 다음을 얻습니다.
{value: 1, done: false}
{value: 2, done: false}
{value: 3, done: false}
{value: undefined, done: true}
next
는 value
및 done
속성을 가진 객체를 반환합니다.value
에는 반환된 값이 있고 done
는 반환할 다른 값이 있는지 여부를 나타냅니다.done
is true
는 반환할 다른 값이 없음을 나타냅니다.인수 없이
yield
를 사용하면 next
에 값을 전달하고 값을 얻을 수 있습니다.예를 들어 다음과 같이 작성할 수 있습니다.
function* generatorFunc() {
console.log(yield);
console.log(yield);
console.log(yield);
}
const gen = generatorFunc();
console.log(gen.next());
console.log(gen.next('foo'));
console.log(gen.next('bar'));
console.log(gen.next('baz'));
yield
에 콘솔 로그generatorFunc
를 기록한 다음 인수로 next
를 호출하면 기록됩니다.첫 번째 것은 본체를 실행하는 대신 생성기 함수를 시작하기 때문에 아무것도 없이 호출해야 합니다.
반환됩니다:
{"done": false,"value": undefined}
Generator 객체는 iterator 계약을 따릅니다.
따라서
Symbol.iterator
메서드를 얻을 수 있습니다.우리가 가지고있는 경우 :
console.log(gen[Symbol.iterator]() === gen);
우리는 기록
true
.생성기 반복
제너레이터는 반복자입니다.
iterables를 지원하는 모든 것은 제너레이터를 반복하는 데 사용할 수 있습니다.
예를 들어 for-of 루프를 사용할 수 있습니다.
function* genFunc() {
yield 1;
yield 2;
}
for (const i of genFunc()) {
console.log(i)
}
그런 다음 우리는 다음을 얻습니다.
1
2
제너레이터와 함께 구조 분해 구문을 사용할 수도 있습니다.
예를 들어 다음과 같이 작성할 수 있습니다.
function* genFunc() {
yield 1;
yield 2;
}
const [x, y] = genFunc();
그런 다음
x
는 1이고 y
는 2입니다.컬렉션
JavaScript는
Map
, WeakMap
, Set
, WeakSet
와 같은 다양한 종류의 컬렉션을 제공합니다.이제 이러한 데이터 구조를 만들기 위해 해킹을 만들 필요가 없습니다.
지도
Map
키-값 쌍을 저장할 수 있습니다.그것들을 통해 우리는 가치에 빠르게 접근할 수 있습니다.
예를 들어 다음과 같이 작성할 수 있습니다.
const m = new Map();
m.set('first', 1);
그런 다음 다음과 같이 작성하여 얻을 수 있습니다.
console.log(m.get('first'));
키로 값을 가져옵니다.
delete
메소드를 사용하여 주어진 키로 항목을 제거할 수 있습니다.m.delete('first');
그리고
size
속성으로 크기를 설정할 수 있습니다.console.log(m.size);
키-값 배열의 배열로 맵을 생성할 수도 있습니다.
const m = new Map([
['one', 1],
['two', 2],
['three', 3],
]);
결론
생성기를 사용하여 이터러블을 생성할 수 있습니다.
또한 맵을 사용하여 키-값 쌍을 저장할 수 있습니다.
Reference
이 문제에 관하여(객체 지향 JavaScript — 생성기 및 지도), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aumayeung/object-oriented-javascript-generators-and-maps-egp텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)