まず、ツール。javascript開発、必須のツール。FireBugここからゲット。対話式にJavaScriptがテストできる。
以下は、参考サイトの勉強メモ。
さて、JavaScriptで次のような書き方ができる。
var objf = function(x){ return x * 2}
関数リテラル(無名の関数を代入)という。
このようにJavaScriptでは、リテラル以外はオブジェクトであり、オブジェクトとは「プロパティ名とそれに対応づけられた値のペアのリスト」とする。
JavaScriptでのオブジェクト定義はJSON(JavaScript Object Notation)という表記法によって表現することができる。こんな感じ、(連想配列と一緒)
var Car = {‘maker’:’Toyota’, ‘model’:’carora’, ‘run’:function(){alert(‘burrrooon!’)} }
オブジェクトをさらにオブジェクトから呼ぶこともできる。
var Garage = {‘number’:’7′, ‘myCar’:Car}
Garage.myCar.run()
オブジェクトを消すにはdeleteステートメントを使う。
delete Garage.myCar.run
新しいオブジェクトは、「既に存在しているオブジェクトのプロトタイプ」をベースにする。この点が、JavaScriptが「プロトタイプベース言語」と呼ばれる。
var Car = function(model){this.model = model;} ;
これはクラをコンストラクタ付きで、定義している。プロパティ変数はthis.をつけることで参照できる。
Car.prototype = {‘model’:’noname’, ‘run’: function(){ alert(‘garuuuun’);} };
このprototypeにより、新しくプロパティの初期値をセットしている。
定義されたオブジェクトを作るには
var carora = new Car(‘carora’);
prototypeプロパティをセットした後、そのクラスをnewするとプロパティを含んだオブジェクトができる。
つまり、クラスを継承しているわけですね。この継承は延々とさかのぼることができる。(プロトタイプチェーン)
var Mammal = function(){};
Mammal.prototype = {‘name’:’noname’, ‘bark’: function( alert(‘—–‘);}};
var Dog = function(){};
Dog.prototype = new Mammal();
var Chiwawa = function(){ this.name = “chiwawa”;}
Chiwawa.prototype.bark = function(){alert(‘Can Can’);}
var mypet = new Chiwawa();
delete mypet.bark
これをふまえて、Prototype.jsパッケージを見てみよう。