JavaScript高次関数
1582 ワード
高次関数とは、パラメータとして一つ以上の関数を受け取り、新しい関数を返します.
次の例では、2つの関数f()とg()を受信し、f(g)を計算するための新しい関数を返します.
次の例では、2つの関数f()とg()を受信し、f(g)を計算するための新しい関数を返します.
// f(g())
// h() g(), g() f()
// f() g() this h() this this
function compose(f,g){
return function(){
return f.call(this,g.apply(this,arguments));
}
}
var square=function(x){
return x*x;
}
var sum=function(x,y){
return x+y;
}
var squareofsum=compose(square,sum);
squareofsum(2,3);// 25
由来は「JavaScript権威の手引き」です. 8.2