bigmac-jp blog

web開発関連のメモ

Javascript Prototype

var Student = function(name, sex, school_year){
    this.name = name;
    this.sex = sex;
    this.school_year = school_year;

}

// メソッドは生成したインスタンスごとでも同じものになる。
// そのため複数のインスタンスで同じメソッドを生成してしまうと、重複したメソッドが生成されてメモリを圧迫する可能性がある。
// Prototypeでメソッドを定義すると、インスタンス生成時にメソッドは参照となり、生成はされない。= メモリも無駄に使われない。
Student.prototype.getName = function(){
    return this.name;
}


// ※アロー関数はthisが固定されるため使えない!!
Student.prototype.getSex = () =>{
    return this.sex;
}

var yamada = new Student('yamada', 'female', '3');

console.log(yamada.getName()); // yamada
console.log(yamada.getSex()); //  undefined



// まとめることもできる
Student.prototype  = {
    getName : function(){

    },

    getSex : function(){

    }
}