瀏覽代碼

curry函数制作,无占位版本

kindring 2 年之前
父節點
當前提交
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);
+        }
+    }
+}