ここは、ふぇりあ16歳が不定期に連載しているオンライン小説のページです。
VNIふぇりあ16歳へ
ゼロからわかる現代JavaScript
54.パターン「プロパティでのアクセス」
オブジェクト指向はいろいろな使い方をする事ができます。
そのうちの一つに
各クラスの内部変数にはプロパティでアクセスする
というものがあります。
とにかく、極力、「オブジェクト.プロパティ」という
呼び出し方を避けるというものです。
今回使用するソースコード |
var mc = new classA(); //プロパティでアクセスするのが基本 document.write(mc.getStudent() + "はLEVEL5<br>"); document.write(mc.getStudent2() + "はLEVEL4<br>"); document.write("とある科学の超電磁砲<br><br>"); mc.setNewStudent("食蜂操祈"); //メンバーを表示 mc.ShowMemberA(mc); var mc2 = mc.Cratejudgment(); mc2.setNewStudent("佐天涙子"); //メンバーを表示 mc.ShowMemberB(mc2); function classA() { var obj = this; //クラス変数 obj.student = "御坂美琴"; obj.student2 = "白井黒子"; obj.student3; //getプロパティ obj.getStudent = function () { return obj.student; } //getプロパティ obj.getStudent2 = function () { return obj.student2; } //get/setプロパティ obj.getNewStudent = function () { return obj.student3; } obj.setNewStudent = function (x) { obj.student3 = x; } //メソッド obj.ShowMemberA = function (x) { document.write(x.student + "<br>"); document.write(x.student2 + "<br>"); document.write(x.student3 + "<br>"); } //メソッド obj.ShowMemberB = function (x) { document.write(x.student + "<br>"); document.write(x.student2 + "<br>"); } //Bクラスのオブジェクトを返す obj.Cratejudgment = function () { return new classB(); } } function classB() { var obj = this; //クラス変数 obj.student = "初春飾利"; obj.student2; //getプロパティ obj.getStudent1 = function () { return obj.student1; } //getプロパティ obj.getStudent2 = function () { return obj.student2; } //get/setプロパティ obj.getNewStudent = function () { return obj.student2; } obj.setNewStudent = function (x) { obj.student2 = x; } } |
ソースは長いだけでたいしたことはしていません
ただし、前回のオブジェクトを返すパターンを使い
機能をAクラスに集約し、Bクラスはメンバー変数の保持だけをしています。
実行結果
コラム:
このパターンはおそらく海外のJavaの上手な人が
考えたのかなと思います。
「ただの読み書きのメソッド」です。
しかし、いつしかC#に機能として実装されているのが面白い点です。
(C)著作権はふぇりあ16歳とお兄ちゃんにあります。
無断転載、盗用は禁止です。