概要
javascriptのオブジェクトについては、前回の投稿で簡単なオブジェクトの書き方、使い方を例にあげました。
オブジェクトについて、もう少し入り組んだ概念について詰めます。
オブジェクトに対してゲッターとセッターと呼ぶメソッドを指定でき、それぞれプロパティという位置づけで解釈することができます。
また、ゲッターとセッターについては、それぞれアクセサプロパティと、データプロパティという名前で区別して考えることができます。
アクセサプロパティについて
アクセサプロパティは書き込み不可の属性です。
プロパティがゲッターとセッターの両方のメソッドを持つ場合、 読み書き可のプロパティになります。
ゲッターしかない場合は、読み出し専用のプロパティになり、
セッターしかない場合は、書き込み専用のプロパティになります。
また、データプロパティは単純に値のみを持ちます。
簡単な例
具体的なゲッターメソッドは次のように定義します。
//ゲッター var test = { a: '10', b: '20', get access_a() { return this.a; } } //呼び出す時の書き方 console.log(test.access_a);この場合は、変数testに対して、ゲッターメソッド「access_a」を定義しています。
access_aを呼び出すと、メソッド内でプロパティaの値が、返されます。
文字通り「get」キーワードを下記、その後にメソッド名と処理を書きます。
次にセッターメソッドの場合は次のように定義します。
//セッター var test = { c: '30', d: '40', get access_c() { return this.c; }, set access_c(value) { //わかりやすいように10倍に計算する var sub_c = value * 10; this.c = sub_c; }, } //呼び出す時の書き方 console.log(test.access_c); //出力結果「30」 //testオブジェクトのセッタプロパティに対して値を代入 test.access_c = 50; console.log(test.access_c); //出力結果「500」
上記のようにセッターメソッドを使う時は、オブジェクトのプロパティに対して値を代入するように書きます。
例ではわかりやすいように、セッターメソッド内で値を10倍にして返しています。
セッターに値を入れた後に、改めてゲッターメソッドを使うと、出力結果は計算された結果が返ってきます。