2010年2月8日月曜日

JavaScriptでプライベート変数

コツはthisを書かないこと

隠蔽というかカプセル化もオブジェクト指向の醍醐味の一つだと思っていますが、JavaScriptでは言語がプライベート変数のようなものはサポートしていません。ですが、クロージャをうまく使えばできるのです!

var f = function(){
  var _private_var = '';
  return {
    getter:function(){ return _private_var; },
    setter: function(string){ _private_var = String(string); return this; }  
  };
};

return this;が好みです

上記の例ではシンプルにゲッターとセッターだけ実装してます。セッターの場合は何もreturnしなくてもいいんですが、return thisをしとけばメソッドチェーン(カスケード?)ができるので好きです。表現力が増しますし、複数の処理を一つにまとめてしまうことを回避できる場合があります。

0 件のコメント: