JavaScript高次関数

1582 ワード

高次関数とは、パラメータとして一つ以上の関数を受け取り、新しい関数を返します.
次の例では、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