2016-03-29 6 views
0

私はインタビューの準備のために遭遇したというこの質問にかなり戸惑います。それは私がこの無計画な方法でパラメータを取り込み乗算と呼ばれる関数を記述できるようにしたいと考えて:JSのパラメータの2つの入力を持つ関数を理解しようとしています(functionX(param1)(param2)のように)

multiply(5)(6); 

私は、コールバックを書き、その後、return文でこれを参照しようとしたが、それはコーシャーではなかったです。

function multiply(function(value){ 
return this * value; 
}); 
} 

この問題には再帰が必要ですか?

ありがとうございます!

答えて

2

あなたは、このmultiply(5)(6);方法で

をあなたの関数を呼び出したい場合、あなたはをカリー化機能を検索する必要があります。そして、それは、によって達成することができます

function multiply(a){ 
return function(b){ 
    return b * a; 
} 
} 

//your way 
console.log(multiply(2)(2)) //4 

//The standard way 
var multiplyBy5 = multiply(5); 
var res = multiplyBy5(3); 
console.log(res); // 15; 

var multiplyBy10 = multiply(10); 
var res = multiplyBy5(3); 
console.log(res); // 30; 
+0

ありがとうございます。それは意味があります – Jon

+0

@ジョン喜んで助けて! :)あなたがこの答えがあなたを助けてくれたと思えば、この答えの中にある目盛りを押してください。そして、これは強制ではありません。 :) –

関連する問題