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