柯里化初识

xiaoxiao2021-02-28  32

将函数的arguments转为数组 function f(){ //arg数组中有除函数第一个参数之外的其余参数 var arg = Array.prototype.slice.call(arguments, 1); }

callee属性: 该属性为一个指针,指向拥有这个arguments对象的函数,在实现递归时使用可以消除函数名与函数执行的耦合。 2. 函数柯里化:将接收多参数的函数f,通过逐步传参转化为一个只接收一个参数的函数f1,并且 f1 返回原来函数 f 计算结果。

function curryIt(fn) { return function a(arg1){ return function b(arg2){ return function c(arg3){ return fn(arg1,arg2,arg3); }; }; }; }

递归法:

function curryIt(fn) { var len = fn.length; var args = []; function result(arg){ args.push(arg); len--; if(len>0){ return result; }else{ return fn.apply(this,args); } } return result; }
转载请注明原文地址: https://www.6miu.com/read-2632913.html

最新回复(0)