2015年08月11日

JavaScriptにおけるsetter/getter

JavaScriptにおけるsetter/getterはECMAScript5で追加されIE9以降の主要なブラウザで利用できる機能です。

以下のようにfunctionキーワードの変わりにsetキーワード、getキーワードで関数を指定することであたかもプロパティのように利用できます。

var huga = {
_name : "hoge",
set name(name){
this._name = name;
},
get name(){
return this._name;
}
};
console.log(huga.name);//hoge
huga.name = "hoge2";
console.log(huga.name);//hoge2


上記のサンプルでは_nameが隠蔽されておらずあまり有用ではありません

下記のように即時関数を利用して_nameをプライベート空間で定義することによってset/getでのアクセスしかできなくなります。

var huga = (function({
var _name = "hoge";
return {
set name(name){
_name = name;
},
get name(){
return _name;
}
}
})();
console.log(huga.name);//hoge
huga.name = "hoge2";
console.log(huga.name);//hoge2


setterのみを指定することで書き出し専用、getterのみを指定することで読み込み専用などの区別を付けることができます。
posted by ねこまんま at 08:03 | Comment(0) | TrackBack(0) | 関数/文法 | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック