Curing(Curing)

5421 단어 uri
콜리화: 여러 개의 매개 변수를 받아들이는 함수를 하나의 매개 변수를 받아들이는 함수로 바꾸고 나머지 매개 변수를 받아들일 준비를 하고 결과를 되돌릴 수 있는 기술을 되돌려줍니다.
 1 function currying(fn){

 2     var args = Array.prototype.slice.call(arguments, 1);

 3     

 4     return function(){

 5         var innerArgs = Array.prototype.slice.call(arguments);

 6         var finnalArgs = args.concat(innerArgs);

 7         

 8         return fn.apply(null, finnalArgs);

 9     }

10     

11 }

12 

13 function add(num1, num2){

14     return num1 + num2;

15 }

16 

17 var curriedAdd = currying(add, 2);

18 console.log(curriedAdd(3)); //5

콜리화를 사용하면 우리는 숫자가 누적된 예를 실현할 수 있다.
 1 function currying(fn) {

 2     var _store = [];

 3 

 4     return function () {

 5         if (!arguments.length) {

 6             return fn.apply(null, _store);

 7         } else {

 8             _store = _store.concat(Array.prototype.slice.call(arguments));

 9         }

10     }

11 

12 }

13 

14 function sum() {

15     var total = 0;

16     for (var i = 0, len = arguments.length; i < len; i++) {

17         total += arguments[i];

18     }

19     return total;

20 }

21 

22 var addNum = currying(sum);

23 

24 addNum(1);

25 addNum(2);

26 addNum(3, 4);

27

28 console.log(addNum()); //10

다중 파라미터의 함수 중, 만약 우리가 그 중의 일부 파라미터를 고정시키고 싶다면, 우리는 함수의 코리화 특성을 사용할 수 있다.함수의 일부 파라미터를 미리 전송하여 간단한 함수를 얻고, 미리 전송된 파라미터는 패키지에 저장됩니다.

좋은 웹페이지 즐겨찾기