Plus Babel 트릭 없이 Variadic Curried Sum
JavaScript에서 다음과 같이 동작하는 sum 함수를 만들 수 있나요?
sum(1)(2) = 3 sum(1)(2)(3) = 6 sum(1)(2)(3)(4) = 10
이것은 불가능하다고 잘못 믿고 있습니다. 그러나 sum과 함께 연산자를 활용하면 가능합니다.
해결책:
function sum(n) { var v = function(x) { return sum(n + x); }; v.valueOf = v.toString = function() { return n; }; return v; } console.log(+sum(1)(2)(3)(4));
핵심은 카레 기능. 이러한 메서드는 숫자와 같은 기본 값으로 강제 변환될 때 함수가 동작하는 방식을 지정합니다. 이러한 메소드 내에서 n을 반환함으로써 카레 함수의 내부 상태(현재 합계)가 보존되도록 합니다.
이 기술을 사용하면 바벨 트릭에 의존하지 않고 가변 카레 합계 함수를 생성할 수 있습니다.
위 내용은 \' \' 바벨 트릭을 사용하지 않고 JavaScript에서 Variadic Curried Sum 함수를 어떻게 생성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!