今回はオブジェクト指向におけるちょっとしたプログラムごとについて解説をします。
カプセル化とは、オブジェクトのデータ(プロパティ)、振る舞い(メソッド)の機能を隠すことです。
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宣言した変数にアクセス用のメソッドを書くことにより実現ができます。
日付 | 詳細 |
---|---|
2011/09/20 | コンテンツ公開 |
Copyright (C) 2011 ほぷしぃ. All Rights Reserved.