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

JavaScriptのオブジェクトアクセサー(getter・setter)の使い方をわかりやすく解説

オブジェクトアクセサーとは?

JavaScriptでは、オブジェクトのプロパティへアクセスするためにgetter(ゲッター)setter(セッター)というキーワードを使用できます。

getterは、プロパティが参照された際にその戻り値を返します。一方、setterは引数を受け取り、オブジェクト内のプロパティ値をその引数に設定します。これらを活用することで、プロパティの読み書きの際にバリデーションや計算処理などを柔軟に組み込むことが可能になります。

getterとsetterの基本構文

オブジェクトリテラル内でgetおよびsetキーワードを用いることで、通常のプロパティと同じ構文でアクセスできる特殊なメソッドを定義できます。getterとsetterは同じ名前で定義するのが一般的です。

サンプルコード

以下は、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;
   }
   .sample {
      font-size: 18px;
      font-weight: 500;
      color: red;
   }
</style>
</head>
<body>
<h1>JavaScript Object Accessors</h1>
Enter a number <input class="num" type="number" />
<div class="sample"></div>
<button class="Btn">CLICK HERE</button>
<h3>
Click on the above button to set the age value and display it
</h3>
<script>
   let sampleEle = document.querySelector(".sample");
   let testObj = {
      age: "",
      set AGE(val) {
         this.age = val;
      },
      get AGE() {
         return this.age;
      },
   };
   document.querySelector(".Btn").addEventListener("click", () => {
      let number = document.querySelector(".num").value;
      testObj.AGE = number;
      sampleEle.innerHTML = "AGE = " + testObj.AGE;
   });
</script>
</body>
</html>

実行結果

このコードでは、testObjオブジェクトに対してAGEという名前のgetterとsetterを定義しています。ボタンがクリックされると、入力欄の値がsetterを通じてageプロパティに設定され、その後getterを通じて画面に表示されます。

初期状態の画面は以下のとおりです。

JavaScriptのオブジェクトアクセサー(getter・setter)の使い方をわかりやすく解説

数値を入力して「CLICK HERE」ボタンをクリックすると、入力した値がsetterによってオブジェクトに設定され、getterを通じて以下のように結果が表示されます。

JavaScriptのオブジェクトアクセサー(getter・setter)の使い方をわかりやすく解説

まとめ

getterとsetterを使うことで、プロパティへの直接アクセスを制御し、値の設定時や取得時に任意の処理を挟むことができます。データの整合性を保ちたい場合や、内部データを隠蔽したい場合に非常に有用な機能です。

  1. JavaScriptのRegExp(正規表現)オブジェクトとは?基本の使い方をわかりやすく解説

    RegExp(正規表現)オブジェクトは、テキストに対してパターンマッチングを行い、目的の文字列部分を検索・抽出するために使用されます。JavaScriptでは、RegExpオブジェクトを「RegExpコンストラクタ」または「リテラル構文」の2通りの方法で作成できます。 RegExpオブジェクトの作成方法 コンストラクタを使用する場合: new RegExp(pattern) リテラル構文を使用する場合: /pattern/ 主なメソッド test():文字列がパターンに一致するかどうかを真偽値(true / false)で返します。 exec():パターンに一致した文字列を返します。

  2. JavaScriptのオブジェクト初期化子とは?使い方をサンプルコードで解説

    オブジェクト初期化子とは オブジェクト初期化子(Object Initializer)は、新しく生成したオブジェクトを初期化するための式です。波括弧 {} の中に、「プロパティ名」と「それに対応する値」のペアを0個以上、カンマ区切りで列挙して記述します。 これにより、変数宣言と同時にオブジェクトの中身を簡単に定義することができます。 以下は、JavaScriptでオブジェクト初期化子を使用したサンプルコードです。 サンプルコード <!DOCTYPE html> <html lang="en"> <head> <meta chars