ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript のカリー化された合計関数は複数の引数をどのように処理できますか?
可変個引数 Sum 関数のカリー化: 内部動作の探索
JavaScript で、複数の引数を受け取り、カリー化された形式で動作する sum 関数を作成します。やり方は乗り越えられない課題のように思えるかもしれません。しかし、カリー化の手法を使えば実際にそれが可能です。
カリー化には、複数の引数を取る関数を、それぞれが 1 つの引数を取る一連の関数に変換することが含まれます。これにより、複数の数値を加算するために連続的に適用できる sum 関数を作成できます。
秘密は関数の定義方法にあります。
function sum(n) { var v = function(x) { return sum(n + x); };
ここでは、sum(n) 1 つの引数 x を受け取り、n 個の x を指定して sum を呼び出した結果を返す関数 v を返します。これにより、複数の呼び出しを連鎖して合計し、それぞれが前の結果に次の数値を加算することができます。
最終結果を処理するには、関数の valueOf メソッドと toString メソッドを定義します。
v.valueOf = v.toString = function() { return n; };
これにより、v を値として呼び出したときに、累積合計 n が返されることが保証されます。
最後に、単項プラス演算子 ( ) を使用します。カリー関数の結果をプリミティブ数値に変換します。
console.log(+sum(1)(2)(3)(4));
これにより、期待される結果 10 が出力されます。
したがって、最初は直観に反するように思えるかもしれませんが、可変個引数のカリー関数を作成します。 JavaScript の sum 関数は、カリー化の原則と関数プロパティの賢い操作を使用して可能です。
以上がJavaScript のカリー化された合計関数は複数の引数をどのように処理できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。