Javascriptのprototype
prototypeとは
すべてのオブジェクトが持つ隠しプロパティのようなもの。
prototypeのメリット
prototypeの利用すると、メモリを節約できる
例えば、、
通常のコンストラクタの場合
var User = function(name, age) { this.name = name; this.age = age; //メソッドを定義する this.getName = function() { return this.name; } }
インスタンスを生成するたびに、メソッドがコピーされる。
メソッドはどのインスタンスでも同じなので、毎回コピーされると無駄。
prototypeを利用した場合
var User = function(name, age) { this.name = name; this.age = age; } User.prototype.getName = function() { return this.name; }
インスタンス生成時、プロトタイプはコピーされず、参照して利用。
prototype定義の簡素化
複数のプロトタイプを扱う場合は、何度もUser.prototype.XXXのように書くとコードが肥大化してしまうので、下記のように書くと良い。
User.prototype = { getName: function() { return this.name; }, getAge: function() { return this.age; } }