Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptでのVS部分適用のカリー化。


カリー化 −カリー化では、関数は別の関数といくつかの引数を取ります。次に、関数は1つのパラメーターのみを持つ1つの関数を返します。一緒にチェーンできる1つの引数を持つ関数を返します。

部分適用 −部分適用では、一部の引数を一部の値にバインドして、より少ない引数で関数を生成できます。

以下は、JavaScriptでのカリー化と部分適用のコードです-

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
   body {
      font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
   }
   .result {
      font-size: 18px;
      font-weight: 500;
      color: rebeccapurple;
   }
</style>
</head>
<body>
<h1>Currying vs Partial application in JavaScript</h1>
<div class="result"></div>
<br />
<button class="Btn">CLICK HERE</button>
<h3>Click on the above button to see currying and partial application example</h3>
<script>
   let resEle = document.querySelector(".result");
   let BtnEle = document.querySelector(".Btn");
   function multiply(x, y) {
      return function (y) {
         return x * y;
      };
   }
   function add(a, b, c, d) {
      return a + b + c + d;
   }
   BtnEle.addEventListener("click", () => {
      resEle.innerHTML =
      "Currying<br>multiply(2)(5) = " + multiply(2)(5) + "<br>";
      let partialAdd = add.bind(this, 2, 3);
      resEle.innerHTML +=
      "Partial Application <br> partialAdd(4,5) = " +
      partialAdd(4, 5) +
      "<br>";
   });
</script>
</body>
</html>

出力

JavaScriptでのVS部分適用のカリー化。

[ここをクリック]ボタンをクリックすると-

JavaScriptでのVS部分適用のカリー化。



  1. JavaScriptの関数プロトタイプ

    JavaScriptで作成された関数には、JavaScriptエンジンによって追加されたプロトタイププロパティが常にあります。プロトタイププロパティは、デフォルトでコンストラクタプロパティを含むオブジェクトです。関数protoypeには、-からアクセスできます。 functionName.prototype オブジェクトが関数コンストラクターを使用して作成されている場合、このプロトタイププロパティを使用して、その関数コンストラクターによって作成されたオブジェクト間でメソッドまたはプロパティを共有できます。 以下は、JavaScriptの関数プロトタイプのコードです- 例 <!DOCT

  2. JavaScriptでの関数の借用。

    call()、apply()、bind()は、JavaScriptのメソッドを借用するために使用されます。 以下は、JavaScriptでメソッドを借用するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> &