Js中的函数
函数柯里化 柯里化概念:只传递给函数一部分参数来调用它,让它返回一个函数去处理剩下的参数 看一个例子: var add = function(x) { return function(y) { return x + y; }; }; var increment = add(1); var addTen = add(10); increment(2); // 3 addTen(2); // 12 我们定义了一个 add 函数,它接受一个参数并返回一个新的函数。调用了 add 之后,返回的函数就通过闭包的方式记住了 add 的第一个参数。 因为一次性地调用它有点繁琐,所以使用一个特殊的 curry 帮助函数使得这类函数的定义和调用更加容易。 curry的封装 // 初步封装 var currying = function(fn) { // args 获取第一个方法内的全部参数 var args = Array.prototype.slice.call(arguments, 1) return function() { // 将后面方法里的全部参数和args进行合并 var newArgs = args.concat(Array.prototype.slice.call(arguments)) // 把合并后的参数通过apply作为fn的参数并执行 return fn.apply