Просмотр исходного кода

curry函数制作,无占位版本

kindring 2 лет назад
Родитель
Сommit
0d05e520e2
1 измененных файлов с 29 добавлено и 0 удалено
  1. 29 0
      js/高阶函数 curry.js

+ 29 - 0
js/高阶函数 curry.js

@@ -0,0 +1,29 @@
+// fn(1)
+// fn(2)
+// fn(3)
+// fn(4)
+// fn(5)
+// fn()
+// console.log(1,2,3,4,5)
+
+
+let fn = _curry(console.log,'test');
+fn(1)
+fn(2)
+fn(3)
+fn(4)
+fn(5)
+fn()
+
+function _curry(fn){
+    let _arguments = Array.from(arguments);
+    let params = _arguments.splice(1);
+    return function(){
+        let __arguments = Array.from(arguments);
+        if(__arguments.length >= 1){
+            params.push(...__arguments);
+        }else{
+            fn(...params,...arguments);
+        }
+    }
+}