작동 원리 - 사용자 정의 정렬 연산자 [...5]
11490 단어 es6webdevjavascript
다음은 available as a blog post입니다.
자바스크립트에서 spread operator은... (3점) 은 기본적으로 하나의 그룹, 대상 또는 문자열을 받아들여 항목을 복사, 확장, 합병 또는 다른 변수로 통합할 수 있음을 나타낸다.
우리는 연구rest parameters를 하지 않을 것이다. 그것은 확산산자와 유사해 보이지만 분해수와 대상에 쓰인다.
예:
var str = "Hello World";
console.log(...str); // H e l l o W o r l d
var obj = { name: "My Car", modelYear: "2018" };
var obj2 = { model: "Ferrari" };
console.log({ ...obj, obj2 }); // { "name": "My Car", "modelYear": "2018", "model": "Ferrari" }
var arr = [1, 2, 3, 4, 5];
console.log(...arr); // 1 2 3 4 5
우선, 우리는 그것의 장점과 단점, 그리고 그것이 어떻게 작동하는지, 그리고 그것을 실시할 것이다.결점부터 시작합시다.
사기:
iterable 회사 찬성 의견:
병합하거나 복제할 때 문법이 더욱 뚜렷하고 코드가 더 적다.
사용자 정의 확장 연산자를 한 걸음 한 걸음 실현합시다.
예: 사용자 정의 정렬 연산자 [...5]
// This is how our Custom Spread Operator will look like
console.log([...5]); // [1, 2, 3, 4, 5]
// Above custom spread operator will not work now and
// We will get the following error
// Uncaught TypeError: number 5 is not iterable (cannot read property Symbol(Symbol.iterator))
1단계:
상징교체기 부호가 뭐예요?교체기?
상징교체기는 사용자 정의 교체기 함수를 만듭니다. (ES6 이전에는 불가능합니다.)
Iterable
.Iterator
은 그 값을 교체하여 전달한다.var myCustomIterator = {
[Symbol.iterator]: function() {},
};
간단하죠?😆다음 예시에서 더 많은 정보를 알기 위해 간단한iterable 함수를 만들 것입니다.
👉🏻 주의: 기본적으로 함수는 교체할 수 없습니다.
// A simple function which will accept a parameter called `n`
// and it return myCustomIterator.
var generateNumbers = function(n) {
var myCustomIterator = {
[Symbol.iterator]: function() {
var i = 1; // Statement 1
return {
next: () => {
return {
value: i++, // Statement 3
done: i === n + 2, // Statement 2
};
},
};
},
};
return myCustomIterator;
};
generateNumbers(); // return an iterable function
위의 코드 설명:generateNumbers()
함수는 호출할 때 대상을 되돌려줍니다.next()
라는 방법을 포함하고 두 개의 속성을 가진 대상을 거꾸로 되돌려줍니다. 이 두 속성을value &done라고 합니다.next()
은 매번 교체할 때 호출됩니다.value
속성을 for순환 중의 두 번째 문장으로 간주한다(예를 들어 for(문장1;i==n+2;i++)done
적용을 확보하기 위해서, 우리는 다음 예시에서 of와 확장 연산자 순환에 사용할 것이다.for (var i of generateNumbers(5)) {
console.log(i); // prints from 1 to 5
}
// It works 😆
// Now we can do this
[...generateNumbers(5)]; // prints from 1 to 5
// TADA 😁
멋있죠?우리는 함수를 이식할 수 있게 했다.우리의 다음 단계이자 마지막 단계에서, 우리는generateNumbers()를 본기 특성으로 삼아, 우리가 이렇게 할 수 있도록
generateNumbers()
[...5]
한다.예:
// Add Symbol.iterator to Number prototype
Number.prototype[Symbol.iterator] = function() {
var i = 1; // Statement 1
return {
next: () => {
return {
value: i++, // Statement 3
done: i === this + 2, // Statement 2
};
},
};
};
// Now I can do this 🤪
console.log([...5]); // [1, 2, 3, 4, 5]
마지막 생각
위원회와 TC39규범 덕분에 우리는 확장 연산자를 사용하여 자신의 사용자 정의 교체기 함수를 작성할 수 있다.당신들이 기호를 어떻게 사용할지 매우 알고 싶습니다.이제 교체기를 이해하셨습니다.
만약 네가 좋아한다면 밀어라.오늘 자바스크립트에 관한 새로운 지식을 배울 수 있기를 바랍니다.
다음 글은 가상 DOM의 작동 원리입니다.구독하지 않으셨다면 아래에서 구독하시기 바랍니다:D
ES6
여기에 가입 참고 문헌:
Reference
이 문제에 관하여(작동 원리 - 사용자 정의 정렬 연산자 [...5]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/gokulkrishh/how-it-works-custom-spread-operator-5-ieo텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)