OOPとしてのJavaScript
OOPことオブジェクト指向プログラミングに使える言語は、
class型のC++やJAVAなどと、プロトタイプ型のJavaScriptなどの2種類に分けられるらしい。
しかもJavaScriptはどちらでも書ける便利さがある。
JavaScriptはシュガーメソッドという書き方で関数を増やしていける。
var A={};
A.Func1=function(){};
A.Func2=function(){};
書き方を変えて、
var A=new function (){ return this; };
var A.prototype.Func1=function(){};
var A.prototype.Func2=function(){};
と、こうなるからプロトタイプ型。
class型は最初に全部定義だけして、実際に使うときに1つだけその実体を作る。
JavaScriptでその書き方をすると、
function _A(){
Func1:function(){
}
,Func2:function(){
};
}
var A=new _A();
別の書き方。
function _A(){
return this;
this.Func1=function(){
};
this.Func2=function(){
};
}
var A=new _A();
昔はclass型の2つめの書き方をしてたし、blinkhash.jsでもそういう作り方になってます。
prototype.jsはプロトタイプ型の2つめの書き方で大まかなオブジェクトを作って、細かな関数や、内部で呼び出す関数はclass型の1つめの方法が多用されてるようす。
Spryはプロトタイプ型の1つめの書き方だけ。
template.jsはプロトタイプ型の1つめの書き方を使ってるけど、確かに簡単(シュガーメソッド)な感じがします。
やっぱり、JavaScript”らしい”書き方がシュガーメソッドなのかなぁ。