> 웹 프론트엔드 > JS 튜토리얼 > JavaScript의 Curried Sum 함수는 어떻게 여러 인수를 처리할 수 있나요?

JavaScript의 Curried Sum 함수는 어떻게 여러 인수를 처리할 수 있나요?

Barbara Streisand
풀어 주다: 2024-11-29 06:03:10
원래의
924명이 탐색했습니다.

How Can a Curried Sum Function in JavaScript Handle Multiple Arguments?

가변 합계 함수 커링: 내부 작동 탐색

JavaScript에서 여러 인수를 받아들이고 카레에서 작동하는 합계 함수 만들기 방식은 극복할 수 없는 과제처럼 보일 수 있습니다. 하지만 커링 기술을 사용하면 실제로 가능합니다.

커링은 여러 인수를 취하는 함수를 각각 단일 인수를 취하는 일련의 함수로 변환하는 작업을 포함합니다. 이를 통해 여러 숫자를 추가하기 위해 순차적으로 적용할 수 있는 합계 함수를 만들 수 있습니다.

비결은 함수를 정의하는 방식에 있습니다.

function sum(n) {
  var v = function(x) {
    return sum(n + x);
  };
로그인 후 복사

여기서는 sum(n) 하나의 인수 x를 취하는 함수 v를 반환하고 n x로 sum을 호출한 결과를 반환합니다. 이를 통해 sum에 대한 여러 호출을 연결하여 각각 이전 결과에 다음 숫자를 추가할 수 있습니다.

최종 결과를 처리하기 위해 함수의 valueOf 및 toString 메서드를 정의합니다.

  v.valueOf = v.toString = function() {
    return n;
  };
로그인 후 복사

이렇게 하면 v를 값으로 호출할 때 누적 합계 n이 반환됩니다.

마지막으로 단항 더하기 연산자( )를 사용하여 결과를 변환합니다. 카레 함수를 원시 숫자로 변환합니다.

console.log(+sum(1)(2)(3)(4));
로그인 후 복사

이렇게 하면 예상 결과가 10으로 출력됩니다.

처음에는 직관에 반하는 것처럼 보일 수 있지만 JavaScript에서 가변 카레 합계 함수를 만드는 것은 커링의 원리와 함수 속성의 영리한 조작을 이용하면 가능합니다.

위 내용은 JavaScript의 Curried Sum 함수는 어떻게 여러 인수를 처리할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿