JavaScriptで本格プログラミング(1)
JavaScriptで多段継承したクラスをいくつも作ったり、public/privateなメンバ・メソッドを実装するにはどうしたら・・・。
と、それだけが「本格」ではありませんが、よく見るような“スクリプト”的なコードだけではなく、通常のコンパイラ言語のようなコードもECMAScriptでは記述可能です。
もともと、ECMAScriptの言語仕様には、プロトタイプを使った継承が(たしか…)謳われています。
@ITに「Ajax時代のJavaScriptプログラミング再入門」という記事が登場しました。
そこらへんを(できることなら各種ツール・フレームワーク等に依存せずに)解説してくれたら、JavaScriptの株ももう少し上がるのではと期待しています。
ECMAScriptのユーザー定義オブジェクト(≒クラス)
JAVAのビーンを例に、privateメンバ"data"とpublicメソッド"getValue","setValue"を持つ"Bean"クラスを定義してみました。
function Bean() {
var data;
this.getValue = function() {
return data;
};
this.setValue = function(value) {
data = value;
};
}
このクラスは、以下のように動作します。
var obj1 = new Bean();
obj1.setValue(1);
var obj2 = new Bean();
obj2.setValue(2);
alert(obj1.getValue()); // 1
alert(obj2.getValue()); // 2
alert(obj1.data); // undefined
alert(obj2.data); // undefined
では、static(各インスタンスにではなく、各クラスに対して1つ存在する)メンバ・メソッドはどうするのか…。
それはまたの機会に載せたいと思います。