Haru  2024/01/06更新

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;
    }
}



タイトルとURLをコピーしました