*

【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に似せた書き方を目指せば大きなコードをより安全に書けそう。
クラス定義は必要に迫られたら試してみます。

関連記事

no image

【javascript】 getパラメータを取得する

クエリストリングを解析してgetパラメータを連想配列で返します。 function get

記事を読む

no image

【javascript】キャスト

javascriptの型変換は勝手によきにはからってくれますが、明示的に行いたい場合もあります。

記事を読む

no image

【javascript】正規表現

基本的な使い方 //[]は省略可能 //abc:正規表現 //i:大文字小文字

記事を読む

Comment

  1. […] このエントリでprivateなプロパティを宣言してクラスみたいなことをやっていたのだけれど、これだけだとコード量てきにそろそろ私の思考能力の限界になってきたので、何かオブジェク […]

Message

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

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

no image
知らないと損をする6つのライセンスまとめ

オープンソースやフリーウェア、フリー素材などが巷に溢れ、それらを利用す

no image
ガリレオ:ニュースブラウザをリリースしました。

概要 ガリレオはニュースを読んだり、検索する機能に特化したブラウザア

no image
【android】Activityとプロセスのライフサイクル

またもやライフサイクル周りでハマったのですが、Androidのライフサ

→もっと見る

PAGE TOP ↑