JavaScriptのプロトタイプ(prototype)のお話です。

JavaScript


人様のJavaScriptのコードを見るとよく「prototype」って記述を見るのですが、何となく思考停止でスルーしていました。

が、さすがに大人なのでまじめに調べてみました。
さくっといきます。

結局JavaScriptのプロトタイプ(prototype)って何がいいの?


簡単に言うと、

  • prototypeを使わないでnewすると毎回メソッドまで複製されるのでメモリを圧迫する。
  • prototypeを使うとnewしてもメソッドは複製されない(参照)のでメモリが圧迫されない。

ということ。


実装例


実装例です。

prototypeを使わない場合


var Student = function(name) {
    this.name = name;

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

var student1 = new Student('一郎');
var student2 = new Student('二郎');


newの度にメソッドまでコピーされちゃうよ~、メモリ圧迫するよ~。

無駄無駄無駄無駄ァァァーーー!!!

prototypeを使う場合


var Student = function(name) {
    this.name = name;
}

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

var student1 = new Student('一郎');
var student2 = new Student('二郎');

メソッドはそれぞれ参照するだけなのでコピーはされないよ~。

まとめ


結局スリムになるってことですね。
ということでprototype使う方が無難でございます。

以上、prototypeのお話でした。



スポンサーリンク