prototype調査

まとめ

結論を出していなかったので一応。
prototypeにするメリットは、以下の通り。

  1. 継承的な使い方が出来る
  2. 実メモリも多分*1参照ポインタだけになる
  3. コンストラクタ関数と異なりthis参照も使える

ということでJAVA的に言うと、staticでないクラスのメンバ関数は、基本的に全てprototypeにするべきと言うことだろう。

おまけ

3は以下のような宣言をするべきではなく、

function a(name) {
 this.name = name;
 this.getName = function() {
  return this.name;
 }
}

こうするべきということ。

function a(name) {
 this.name = name.
}
a.prototype.getName = function() {
 return this.name;
}

おまけでJSON書式で書くとこんな感じか。

a = function(name) {
 this.name = name;
};
a.prototype = {
 getName: function() {
  return this.name;
 }
}

prototype.jsのClass.createパターンを使うとこんな感じか。

a = Class.create();
a.prototype = {
 initialize: function(name) {
  this.name = name;
 },
 getName: function() {
  return this.name;
 }
}

*1:確証は後日