特集PC技術

コアJavaScript(ECMAScript)の図書室

 

38冊目 【JavaScript】[ECMAScript] オブジェクト指向のその他

今回はオブジェクト指向におけるちょっとしたプログラムごとについて解説をします。

目次

[1] カプセル化をしてみる

カプセル化とは、オブジェクトのデータ(プロパティ)、振る舞い(メソッド)の機能を隠すことです。
JavaScriptでは擬似的にこのカプセル化をすることができます。

プライベートプロパティを定義してみる
function Human(name){
	// パブリックプロパティ
	this.name = name;
	// プライベートプロパティ
	var blood = "O";
}

var hopsii = new Human("ほぷしぃ");

// プライベートプロパティに直接アクセスができない
document.writeln(hopsii.name);
document.writeln(hopsii.blood);

プライベートプロパティはvar宣言をつけて実行します。
ただ、このままだとプライベートプロパティを参照することができません。
定義されている(?)けど、直接参照できないことは確認できます。

プライベートプロパティを参照するメソッドを定義する

プライベートプロパティに直接アクセスすることができませんので
プライベートプロパティにアクセスするための機能(アクセサメソッド)を追加してあげます。

function Human(name){
	// パブリックプロパティ
	this.name = name;
	// プライベートプロパティ
	var blood = "O";

	// クロージャを定義する
	this.getBlood = function(){
		return blood;
	}

}

var hopsii = new Human("ほぷしぃ");
document.writeln(hopsii.getBlood());

このようにクロージャを使用してあげるとまるでカプセル化されたかのような動作を実現できます。
カプセル化は、var宣言した変数にアクセス用のメソッドを書くことにより実現ができます。

[2] 更新履歴

日付 詳細
2011/09/20 コンテンツ公開

コメントの投稿


画像の中に見える文字を入力してください。

トラックバックURL

http://www.isl.ne.jp/cgi-bin/mt/mt-tb.cgi/1713

サイト内検索

コアJavaScript(ECMAScript)の図書室

twitterTwitter

最新ブログ記事

2015年06月13日

JavaScriptの情報室

4冊目 ハイブリッドアプリが作れる。tabris.js

2014年10月16日

C++言語学習録

第3回 ファイルを分割してみよう

2014年10月09日

C++言語学習録

第2回 オブジェクト指向の復習

2014年10月02日

C++言語学習録

第1回 C++の開発環境を整える

2014年09月25日

Swiftを試してみようなう。

第4回 Swiftでクラスを使うなう。

ISL 情報戦略研究所

pagetopこのページの先頭へ戻る