[JavaScript]prototypeで継承する

javascript

JavaScriptのコンストラクタでprototypeで継承を使ってみます。

prototypeで継承を使ってみる

簡単なコード例として、Personを作ります。プロパティとしては、nameの値を持ちageCalのメソッドで年齢を計算します。

参考:[JavaScript]コンストラクタってなに?クラス?書き方もあわせて紹介

//Personを定義
function Person(name, yearOfBirth) {
    this.name = name;
    this.yearOfBirth = yearOfBirth;
    this.ageCal = function() {
        console.log(2019 - this.yearOfBirth)
    };
}

//インスタンス作成
var Mike = new Person('Mike', 1990);
console.log(Mike.name) => Mike
Mike.ageCal() => 29

シンプルに書きましたが、Personコンストラクタ内のageCalメソッドを継承で定義してみます。

function Person(name, yearOfBirth) {
    this.name = name;
    this.yearOfBirth = yearOfBirth;
}

// ageCalメソッドはprototypeの継承で定義
Person.prototype.ageCal = function() {
    console.log(2019 - this.yearOfBirth)
}

var Mike = new Person('Mike', 1990);
Mike.ageCal()

継承で定義する場合にはコンストラクタ名.prototype.メソッド名(もしくはプロパティ名)で定義します。

 

今回はメソッドを継承で定義しましたが、プロパティも継承で別で定義することもできます。

 



カテゴリー