2018/9/2 ゲッターとセッターについて javascript

ゲッターとセッター(プロパティ)を定義するには?[JavaScript]

Contents

アクセサプロパティ(getterとsetter)

上記ページは具体的なゲッタ・セッタの使用例があるのでそれを理解するところから始める。

具体例でゲッタ・セッタを使うこと自体はできるが、なぜそれを使う必要があるのか?どこで使うべきなのか?がさっぱりわからない。というのも、別にゲッタ・セッタを使わなくても、

obj.prop のように書けばアクセスして値を変更することができるのだが、なぜそれではなく、「ゲッタ・セッタ」を使うのか?


たかがsetter、されどgetter。JavaSciprtでsetterとgetterを実装する4通りの方法

ここで新たな疑問。上記ページの最初にあるのがこのコード。

function A() {
    var a;
    this.getA = function () {
        return "a is " + a;
    };
    this.setA = function (val) {
        a = val;
    };
}
obj = new A();
obj.setA('hoge');
obj.getA();  // => "a is hoge"

Aはコントラクタ?と思われる。this.getAのような書き方でメソッドを宣言しているが、この違和感は何なのか。

上記コードで

var a;

は無くても動く。

console.log(obj);

でobjを見てみると、メンバプロパティとしてaは表示されない。

function A(n){

this.a=n;

・・・

とすれば、objのメンバプロパティにaが加わる。


とりあえずゲッタ・セッタのところでdefineproperty()が出てきたのでその使い方。

Object.defineProperty()について調べた

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です