問327
下記のような減算する関数subtractと加算する関数addがあります。
function add (x, y){
return x + y;
}
function subtract(x, y){
return x - y;
}subtractかaddを渡すと実行結果をreturnする前にそれぞれの関数結果をconsole出力する汎用的な関数logAndReturnを実装してください
function add (x, y){
return x + y;
}
function subtract(x, y){
return x - y;
}
//HigherOrderFunction
function logAndReturn(func) {
return function(){
var args = Array.prototype.slice.call(arguments);//返した関数の引数を配列にする
var result = func.apply(null, args);//渡された関数に引数を渡し実行する
console.log(`Result:${result}`);
return result;
}
}
var addAndLog = logAndReturn(add);
addAndLog(4, 4);
//'Result:8'
var subtractAndLog = logAndReturn(subtract);
subtractAndLog(4, 3);
//'Result:1'