new »

OOPとしてのJavaScript

Posted by dab | 2007年10月1日 月曜日 22:59:52 < コンピュータ >

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”らしい”書き方がシュガーメソッドなのかなぁ。

TrackBack URI : https://home.wi-wi.jp/blog/wp-trackback.php?p=97

Leave a comment

:mrgreen: :neutral: :twisted: :shock: :smile: :???: :cool: :evil: :grin: :oops: :razz: :roll: :wink: :cry: :eek: :lol: :mad: :sad:

new »