가변 합계 함수 커링: 내부 작동 탐색
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!