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

JavaScriptでクラスに静的メソッドを割り当てる方法


JavaScriptでクラスに静的メソッド(staticメソッド)を割り当てるには、メソッドの前にstaticキーワードを付けるだけです。静的メソッドは、クラスをインスタンス化することなく、クラス名から直接呼び出すことができます。

静的メソッドはクラスそのものに属するため、個々のインスタンスの状態に依存しないユーティリティ関数や計算処理などに適しています。なお、静的メソッドはインスタンスからは呼び出せず、必ずクラス名を介して呼び出す必要がある点に注意しましょう。

以下は、JavaScriptでクラスに静的メソッドを割り当てるコード例です。

コード例

<!DOCTYPE html>
<html lang="ja">
<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>JavaScriptでクラスに静的メソッドを割り当てる</h1>
<div class="result"></div>
<button class="Btn">CLICK HERE</button>
<h3>上のボタンをクリックすると、testClassの静的メソッドを使って2つの数値を加算します</h3>
<script>
   let resEle = document.querySelector(".result");
   let BtnEle = document.querySelector(".Btn");
   class testClass {
      constructor(fname, lname) {
         this.fname = fname;
         this.lname = lname;
      }
      static add(a, b) {
         resEle.innerHTML = a + " + " + b + " = " + (a + b);
      }
   }
   BtnEle.addEventListener("click", () => {
      testClass.add(22, 44);
   });
</script>
</body>
</html>

実行結果

上記のコードを実行すると、次のような出力が表示されます。

JavaScriptでクラスに静的メソッドを割り当てる方法

「CLICK HERE」ボタンをクリックすると、testClassの静的メソッドadd(22, 44)がクラス名を介して直接呼び出され、計算結果が画面に表示されます。

JavaScriptでクラスに静的メソッドを割り当てる方法

  1. 【JavaScript】オブジェクトがクラスのインスタンスかどうかを判定する方法

    JavaScriptでは、instanceof 演算子を使うことで、あるオブジェクトが特定のクラス(コンストラクタ関数)のインスタンスであるかどうかを簡単に判定できます。instanceof 演算子とは?instanceof 演算子は、左辺のオブジェクトが右辺に指定したコンストラクタ関数のプロトタイプチェーン上に存在するかどうかを評価し、その結果を真偽値(true / false)として返します。この仕組みを利用することで、オブジェクトがどのクラスから生成されたものなのかを実行時に動的にチェックできます。コード例以下は、ボタンをクリックしたときに student1 オブジェクトが Studen

  2. JavaScriptでプロトタイプを使ってメソッドを共有する方法

    JavaScriptにおけるメソッドの共有JavaScriptでは、メソッドをオブジェクト(コンストラクタ関数)のprototypeプロパティに定義することで、複数のインスタンス間でそのメソッドを共有できます。通常、コンストラクタ内でthis.displayInfo = function(){...}のようにメソッドを定義すると、生成されるインスタンスごとに関数のコピーが作成され、メモリを無駄に消費します。一方、prototypeに定義すれば、関数は一度だけ生成され、すべてのインスタンスから参照・呼び出しできるようになります。これはメモリ効率の面でも大きなメリットがあります。以下は、JavaS