【javascript】オブジェクトにprivateな変数を定義する
公開日:
:
javascript
最近TubeJockeyを作成してるのですが、だんだんコードが大きくなってきました。
javaみたいにpublici, private, static, finalを使った変数の宣言が出来ればということでまずはprivateな変数・メソッドを実装しました。
var obj = function(){ //privateなプロパティを定義 var hoge = "hoge"; var hogeMethod = function(){ console.log("test : " + hoge); //private → public のアクセスはできない //console.log("test : " + foo); } hogeMethod(); return { //publicなプロパティを定義 foo:"foo", fooFunc:function(){ console.log("public " + this.foo); console.log("public " + hoge);//public → private はアクセス可 } } }();//無名関数を即実行してオブジェクトを返す
javaみたいにクラスを定義してインスタンスを複数作ってというのは難しそうだったので、とりあえず必要な部分だけ実装しました。
●できる
・privateなプロパティを宣言することができる
・privateからpublicなプロパティにはアクセスできない。
・aptanaの補完機能でpublicなプロパティを補完できる
●できない
・クラスメソッド、インスタンスメソッドのような使い分け
javaに似せた書き方を目指せば大きなコードをより安全に書けそう。
クラス定義は必要に迫られたら試してみます。
関連記事
-
【javascript】キャスト
javascriptの型変換は勝手によきにはからってくれますが、明示的に行いたい場合もあります。
-
【javascript】 getパラメータを取得する
クエリストリングを解析してgetパラメータを連想配列で返します。 function get
-
【javascript】正規表現
基本的な使い方 //[]は省略可能 //abc:正規表現 //i:大文字小文字
Comment
[…] このエントリでprivateなプロパティを宣言してクラスみたいなことをやっていたのだけれど、これだけだとコード量てきにそろそろ私の思考能力の限界になってきたので、何かオブジェク […]