函数柯里化用来创建已经设置好一个或多个参数的函数。
下面是一个用来创建柯里化函数的通用函数。
function curry(fn) {
var outerArgs = (arguments, 1);
return function() {
var innerArgs = (arguments),
finalArgs = (innerArgs);
return (null, finalArgs); //注意别漏了return
};
}
这个函数很有用,比如可以向定时器传递一个带参数的函数,如下:
function sayHi(name) {
alert("Hi," + name);
}
setTimeout(curry(sayHi, "yhj"), 1000);