> 웹 프론트엔드 > JS 튜토리얼 > array.prototype.reguceright를 사용하여 JavaScript의 기능 구성

array.prototype.reguceright를 사용하여 JavaScript의 기능 구성

Lisa Kudrow
풀어 주다: 2025-02-14 08:50:12
원래의
610명이 탐색했습니다.

Function Composition in JavaScript with Array.prototype.reduceRight 최근 몇 년 동안 JavaScript의 기능 프로그래밍이 점점 인기를 얻고 있습니다. 자주 출판되는 원칙 중 일부 (예 : 불변)에는 런타임 해결 방법이 필요하지만 언어의 일류 기능 처리는이 기본 원시에 의해 구동되는 종합 가능한 코드에 대한 지원을 입증합니다. 다른 기능에서 기능을 동적으로 결합하는 방법을 소개하기 전에 간단히 검토해 봅시다.

키 포인트

JavaScript의 기능 조합은 더 간단한 함수를 결합하여 복잡한 기능을 생성하여 코드의 재사용 성과 모듈성을 향상시킬 수 있습니다. 이 접근법은 코드 이해, 디버깅 및 테스트를 단순화하고 "자신을 반복하지 마십시오"(건조)의 원리를 장려하고 중복성을 줄입니다. 고급 주문 함수 (하나 이상의 함수를 매개 변수로 취하거나 결과로 하나의 함수를 반환 할 수 있음)는 JavaScript의 기능 조합의 주요 부분입니다. 기존 기능을 결합하여 새로운 기능을 만드는 데 사용됩니다. JavaScript는 함수를 값으로 처리하여 더 큰 상황 별 작업을 쉽게 조합 할 수 있습니다. 고차 기능을 사용하면 정의와 호출이 분리됩니다. 이것은 객체 지향 프로그래밍에 의해 부과 된 엄격한 계층 적 제약으로부터 개발자를 자유롭게 할 수 있습니다.

기능 조합은 React 또는 VUE와 같은 JavaScript 프레임 워크와 함께 사용할 수 있습니다. React에서는 컴포넌트를 결합하여 복잡한 사용자 인터페이스를 구축하는 것이 일반적인 패턴입니다. 마찬가지로 Vue의 Mixin 시스템은 함수 조합의 형태로 간주 될 수 있습니다. 를 지원한다는 점에 주목할 가치가 있습니다.

getfullname 함수가 1 (즉, 단일 매개 변수)을 가지고 있고 하나의 반환 문 만 있다는 점 에서이 표현식을 단순화 할 수 있습니다. 이 세 가지 표현의 방법은 다르지만 결국에는 같은 목적을 달성합니다. 이름 속성을 통해 액세스 할 수있는 getfullName이라는 함수를 만듭니다.

는 매개 변수를 수락합니다.

는 공백으로 분리 된 person.firstname 및 person.lastname을 포함하는 계산 된 문자열을 반환합니다.

리턴 값을 통한 함수 결합
function getFullName(person) {
  return `${person.firstName} ${person.surname}`;
}
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사

는 선언에 함수 리턴 값을 할당하는 것 외에도 (예 : const person = getperson ();)을 사용하여 다른 함수의 매개 변수를 채우거나 일반적으로 JavaScript가 허용하는 값을 제공 할 수 있습니다. 로깅 및 SessionStorage 부작용을 수행하는 기능이 있다고 가정합니다.

우리는 중첩 된 전화를 사용하여 GetPerson의 반환 값에 대해 이러한 작업을 수행 할 수 있습니다.
function getFullName(person) {
  return `${person.firstName} ${person.surname}`;
}
로그인 후 복사
로그인 후 복사
로그인 후 복사
로그인 후 복사
필요한 매개 변수가 호출되는 방식에 따라 함수에 제공되어야한다는 점을 감안할 때 가장 내면 기능을 먼저 호출합니다. 따라서 위의 예에서는 GetPerson의 반환 값이 로그로 전달되며 로그의 반환 값은 상점으로 전달됩니다. 기능 호출을 결합하여 문장을 작성함으로써 결국 원자 빌딩 블록에서 복잡한 알고리즘을 구축 할 수 있지만, 이러한 통화를 둥지로써 10 개의 기능을 결합하려는 경우 어떻게 보일 수 있습니까?

운 좋게도, 우리는 우아한 일반 구현을 사용할 수 있습니다. 함수 배열을 고차 함수로 단순화하십시오.
const character = {
  firstName: 'Homer',
  surname: 'Simpson',
};

const fullName = getFullName(character);

console.log(fullName); // => 'Homer Simpson'
로그인 후 복사
<🎜 🎜> <<> array.prototype.reduce

<🎜 🎜>를 사용한 누적 배열 배열 프로토 타입의 감소 방법은 배열 인스턴스를 가져 와서 단일 값으로

를 축적합니다. 숫자 배열을 합산하려면 다음 방법을 사용할 수 있습니다.

이 코드 세그먼트에서 숫자는 두 개의 매개 변수를 수락합니다. 각 반복에서 호출되는 콜백 함수와 콜백 함수에 의해 반환 된 값이 다음 반복은 총으로 전달됩니다. 위의 부름을 연구함으로써 이것을 더욱 분해하려면 :

콜백 함수는 5 번 실행됩니다 우리는 초기 값을 제공하기 때문에 첫 번째 호출에서 총 0이됩니다. 첫 번째 통화는 0 2를 반환하여 두 번째 호출에서 총 2로 해결됩니다. 이 후속 호출 2 3에 의해 반환 된 결과는 세 번째 통화 등의 총 매개 변수에 제공됩니다.

콜백 함수는 현재 인덱스와 배열을 나타내는 배열 인스턴스를 나타내는 두 개의 다른 매개 변수를 허용하지만, 처음 두 개는 가장 중요하며 일반적으로 다음과 같이 호출됩니다. <–> Accumulator - 마지막 반복 콜백 함수에 의해 반환 된 값. 첫 번째 반복에서 이것은 초기 값으로 해결되며 초기 값이 지정되지 않으면 배열의 첫 번째 항목으로 해결됩니다. currentValue - 현재 반복의 배열 값;

const getFullName = (person) => {
  return `${person.firstName} ${person.surname}`;
};
로그인 후 복사
<<> array.prototype.reduce를 사용한 함수 결합

<🎜 🎜> 이제 배열을 단일 값으로 단순화하는 방법을 이해 하므로이 방법을 사용하여 기존 기능을 새로운 기능으로 결합 할 수 있습니다.

우리는 나머지 매개 변수 구문 (...)을 사용하여 여러 매개 변수를 배열로 캐스팅하여 소비자가 각 통화 사이트에 대한 새로운 배열 인스턴스를 명시 적으로 생성 할 필요가 없습니다. Compose는 또한 다른 함수를 반환하므로 Comport는 초기 값 (InitialArg)을 수용하는 고차 함수를 만듭니다. 그러므로 우리는 새로운 재사용 가능한 기능을 필요로하지 않고
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿